Ubuntu挂载新硬盘
背景
Platform: X64
OS: Ubuntu16.04 Desktop
在Ubuntu的机器上新加了一块1T的硬盘,需要挂载上去
查看新硬盘:sudo fdisk -l
格式化:sudo mkfs.ext4 /dev/sdb或sudo mkfs -t ext4 /dev/sdb
分区大容量(>2T)使用parted分区
普通分区进行分区:
sudo fdisk /dev/sdb
m
n
e
2
p
w
GPT分区(已验证)sudo parted /dev/sdb
#输入:mklabel gpt 将磁盘设置为GPT格式
#分2个区
mkpart primary ext4 0GB 512.0GB
mkpart primary ext4 512.0GB 100%
#输入:print 查看分区结果
#输入:quit
#通知系统分区表的变化
partprobe
格式化分区sudo mkfs.ext4 -F /dev/sdb1
新建挂载点:mkdir xxx手动mount挂载测试
编辑系统挂载配置文件:vim /etc/fstab
#添加 ...
SD卡自动烧录固件
背景在生产的过程中SD卡自动烧录很方便,那要怎么做呢?主要有分以下2种情况:
芯片可以从SD卡启动
芯片不能从SD卡启动
芯片可以从SD卡启动类似M5502S.这种情况有2种方式:
使用Uboot的Auto-burn烧录
使用Linux系统烧录 使用Uboot的Auto-burn烧录Auto-burn就是在uboot的cmdline运行烧录脚本来烧录固件。
准备SD卡每个平台可能有所不一样,以M5S为例,分区并格式化SD卡,并将其volume name改成特定的“BOOTEXT”将SD卡的loader拷贝进SD卡
准备uboot准备可支持自动运行烧录脚本的ubootauto-burn功能模式在uboot的配置中默认是关闭的,需要将其打开。修改默认的环境变量bootargs和bootcmd,让其默认就执行SD里面的自动烧录脚本镜像类似于:
#define CONFIG_BOOTCMD_UPGRADE "fatload mmc 0:1 0xa00000 ${auto_script}; source 0xa00000"
将编译好的uboot ...
RK3399之背光PWM
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
DTS配置backlight: backlight {
status = "disabled";
compatible = "pwm-backlight";
pwms = <&pwm0 0 25000 0>;
brightness-levels = <
0 1 2 3 4 5 6 7
8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23
24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55
56 ...
RK3399添加外部独立RTC
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
以前使用的是RK808内部的RTC,说电流较大,电池不耐用,后面就外置了一个独立的RTC芯片–ISL1208。现在这2个RTC同时存在,或只有以前的RK808,需做兼容处理。
Kernel内核部分:
添加对应RTC芯片的驱动源码(kernel/drivers/rtc/rtc-isl1208.c)
修改Kconfig和Makefile,添加对应的编译选项
dts添加节点配置:&i2c3 {
status = "okay";
i2c-scl-rising-time-ns = <450>;
i2c-scl-falling-time-ns = <15>;
/*RTC*/
rtc: isl1208@6f {
status = "okay";
compatible ...
Github下载单独文件夹
使用DownGit这是别人提供的一个在线工具:https://github.com/MinhasKamal/DownGit只要把目录链接(比如:https://github.com/xxxxxxxx/tree/xxx/ch03)拷贝,然后点击download就可以下载目录的压缩文件
一直打不开,所以未验证过
使用svn1、复制浏览器中对应的URL 地址,如:https://github.com/xxxxxxxx/tree/xxx/ch032、将 /tree/xxx/ 换成 /trunk/,使用 svn 命令即检出, 或使用SVN可视化工具:
svn co https://github.com/xxxxxxxx/trunk/ch03
这个验证过,OK
RK3399-WIFI&BT模块
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
这里主要调试的是AP6236、AP6256,SDIO接口
检查硬件:电源: VDDIO,VBAT时钟:LPO(32.768K) , AXTAL(26M)
检查WL_REG_ON引脚,不能下拉到地检查WIFI_WAKE_HOST引脚,信号与电平
检查SDIO相关信号sdio3.0 VDDIO->1.8V检查SDIO SDIO_CLK、 SDIO_CMD电平及波形测量 VDDIO sdio_clk、 sdio_cmd、 sdio_data0~sdio_data3 的电压;正常情况下 sdio_clk 为 0V,sdio其他五根线与vddio电压一致sdio_clk clk绝对不要加外部上拉,它内部为开漏
硬件OK就能够扫描到模块硬件, 在sys/bus/sdio/devices查看到相应设备,VID和PID也可以在这里找到
添加固件
WIFI路径:./external/wlan_loader/firmware/添加配置nvram_ap6236.txt添加固件fir ...
RK3399-HDMI音频
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
主要针对HDMI-OUT, HDMI-IN这里不做讨论
内核HDMI声卡驱动HDMI相关的声卡驱动官方已支持,只需修改DTS配置:dts:
hdmi_sound: hdmi-sound {
status = "disabled";
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "rockchip,hdmi";
simple-audio-card,cpu {
sound-dai = <&i2s2>;
};
simple-audio-card,codec ...
Anroid系统默认设置修改
首先要确认是否有默认值:在reboot(重启)之后开关状态仍旧保存或者是在reset(恢复出厂设置)之后开关状态恢复到默认的,才能找到默认值
/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java:该文件中对状态值进行存储
/frameworks/base/packages/SettingsProvider/res/values/defaults.xml:定义了开关状态的默认值
/frameworks/base/core/java/android/provider/Settings.java:定义了各开关状态默认值存储时对应的key
关闭所有系统提示音frameworks/base/packages/SettingsProvider/res/values/defaults.xml:
<integer name="def_lockscreen_sounds_enabled">0</integer>
<!-- Defaul ...
插入无线鼠标Android应用重启问题
背景
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
问题在运行我们自己的APK时,插入某些USB的无线鼠标,APK会“重启”,重新走一次生命周期。
分析与解决开始觉得很奇怪,为啥有的鼠标可以有的却不行,还以为是牌子问题。。。后面发现插入有问题的USB无线收发器,会生成2个设备,一个鼠标和一个键盘。没错,这是键鼠套装一体的无线收发器,正是这个键盘导致出现了现在的这个现象,而有些无线鼠标的无线收发器不是键鼠套装,所有只会有1个鼠标设备,所以插上去没有问题。
在Activity中,如果不设置android:configChanges属性,当相应属性发生改变时,APK会重新调用执行各个生命周期所以解决办法就是设置configChanges:在APK工程的AndroidManifest.xml中配置configChanges,具体是在<activity>中添加android:configChanges
android:configChanges="keyboard|keyboardHidden"
但配置完configCh ...
PyQT环境搭建
环境
Win10 X64
安装
安装Python3,并确认添加到环境变量可直接在python下载对应的安装包进行安装
安装PyQt,使用pip pip install PyQt5
pip install PyQt5-tools
使用清华大学的镜像源,提高访问下载速度:
pypi 镜像每 5 分钟同步一次。
临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
注意,simple 不能少, 是 https 而不是 http
设为默认升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:
pip install -i https://pypi ...
Android设置系统时间问题
背景及问题
Platform: RK3399
OS: Android7.1.2
Kernel: v4.4.103
在新的产品开发中,需要设置系统时间。发现使用老产品中的那一套报错,无法用date命令去设置,使用的代码及报错如下:
String.format("date -s %04d%02d%02d.%02d%02d%02d", year, month, day, hour, min, sec);
date: Unknown option s
解决及扩展
后面发现在Android shell里面的date命令没有-s选项。使用help查看:
usage: date [-u] [-r FILE] [-d DATE] [+DISPLAY_FORMAT] [-D SET_FORMAT] [SET]
Set/get the current date/time. With no SET shows the current date.
Default SET format is "MMDDhhmm[[CC]YY][.ss]", that's ...
SVN上传SO库文件问题
问题及解决
OS: Ubuntu16.04 X64
在Ubuntu中,上传项目开发相关的工程到SVN版本库,发现所有的.so、.a的库文件都上传不上去,应该是ignore的问题
方法一(已验证成功):安装SVN成功后,会在用户目录下会生成.subversion的隐藏文件夹,里面的config即为SVN的配置文件。打开config文件,搜索global-ignores 字段,默认时注释掉的,表示后面的就是默认值去掉注释,把要排除过滤的类型去掉,即*.so *.a *.so.[0-9]*等
方法二每次使用SVN时,添加ignore选项--no-ignore 文件夹
或者递归目录下所有文件, --no-ignore --force