1、异常关机,启动报错
/dev/sdb1 contains a file system with errors, check forced.
2、修复测试
fsck -C fd -N /dev/sdb1
提示:
[/sbin/fsck.ext2 (1) -- /dev/sdb1] fsck.ext2 -C0 /dev/sdb1
3、修复执行
fsck.ext2 -C0 /dev/sdb1
1、异常关机,启动报错
/dev/sdb1 contains a file system with errors, check forced.
2、修复测试
fsck -C fd -N /dev/sdb1
提示:
[/sbin/fsck.ext2 (1) -- /dev/sdb1] fsck.ext2 -C0 /dev/sdb1
3、修复执行
fsck.ext2 -C0 /dev/sdb1
基本范例:startActivity(new Intent(Settings.xxx));
| 常量 | 含义 |
| ACTION_SETTINGS | 系统设置界面 |
| ACTION_APN_SETTINGS | APN设置界面 |
| ACTION_LOCATION_SOURCE_SETTINGS | 定位设置界面 |
| ACTION_AIRPLANE_MODE_SETTINGS | 更多连接方式设置界面 |
| ACTION_DATA_ROAMING_SETTINGS | 双卡和移动网络设置界面 |
| ACTION_ACCESSIBILITY_SETTINGS | 无障碍设置界面 |
| ACTION_SYNC_SETTINGS | 同步设置界面 |
| ACTION_ADD_ACCOUNT | 添加账户界面 |
| ACTION_NETWORK_OPERATOR_SETTINGS | 选取运营商的界面 |
| ACTION_SECURITY_SETTINGS | 安全设置界面 |
| ACTION_PRIVACY_SETTINGS | 备份重置设置界面 |
| ACTION_VPN_SETTINGS | VPN设置界面,可能不存在 |
| ACTION_WIFI_SETTINGS | 无线网设置界面 |
| ACTION_WIFI_IP_SETTINGS | WIFI的IP设置 |
| ACTION_BLUETOOTH_SETTINGS | 蓝牙设置 |
| ACTION_CAST_SETTINGS | 投射设置 |
| ACTION_DATE_SETTINGS | 日期时间设置 |
| ACTION_SOUND_SETTINGS | 声音设置 |
| ACTION_DISPLAY_SETTINGS | 显示设置 |
| ACTION_LOCALE_SETTINGS | 语言设置 |
| ACTION_VOICE_INPUT_SETTINGS | 辅助应用和语音输入设置 |
| ACTION_INPUT_METHOD_SETTINGS | 语言和输入法设置 |
| ACTION_USER_DICTIONARY_SETTINGS | 个人字典设置界面 |
| ACTION_INTERNAL_STORAGE_SETTINGS | 存储空间设置的界面 |
| ACTION_SEARCH_SETTINGS | 搜索设置界面 |
| ACTION_APPLICATION_DEVELOPMENT_SETTINGS | 开发者选项设置 |
| ACTION_DEVICE_INFO_SETTINGS | 手机状态信息的界面 |
| ACTION_DREAM_SETTINGS | 互动屏保设置的界面 |
| ACTION_NOTIFICATION_LISTENER_SETTINGS | 通知使用权设置的界面 |
| ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS | 勿扰权限设置的界面 |
| ACTION_CAPTIONING_SETTINGS | 字幕设置的界面 |
| ACTION_PRINT_SETTINGS | 打印设置界面 |
| ACTION_BATTERY_SAVER_SETTINGS | 节电助手界面 |
| ACTION_HOME_SETTINGS | 主屏幕设置界面 |
以跳转到WLAN界面为案例
2.1、普通跳转:就是直接跳到WLAN界面,没有返回键,而且在左上角还有其他一些功能菜单(主要看系统版本和型号)
Intent it = new Intent(Settings.ACTION_WIFI_SETTINGS);
startActivity(it);

2.2、带有返回键的跳转:可用在部分以安卓为主板,自开发APP为Lancher,不带物理或者虚拟按键栏,又想使用系统自带的wifi功能模块(但是7.0的系统上依旧有左上角功能栏,可能会让客户跳转到其他地方去)
Intent it = new Intent(Settings.ACTION_WIFI_SETTINGS);
it.putExtra("extra_prefs_show_button_bar", true);//是否显示button bar
it.putExtra("extra_prefs_set_next_text", "完成");
it.putExtra("extra_prefs_set_back_text", "返回");
//it.putExtra("wifi_enable_next_on_connect", true);
startActivity(it);

2.3、带有返回键,且只有wifi功能模块的,还可以在result中监听
//注意是这个:WifiManager.ACTION_PICK_WIFI_NETWORK
Intent intent = new Intent(WifiManager.ACTION_PICK_WIFI_NETWORK);
intent.putExtra("only_access_points", true);
intent.putExtra("extra_prefs_show_button_bar", true);
intent.putExtra("wifi_enable_next_on_connect", true);
startActivityForResult(intent, 1);

root@somlabs:~# fdisk -l
省略若干
Disk /dev/mmcblk1: 3.7 GiB, 3965714432 bytes, 7745536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9de2d76a
Device Boot Start End Sectors Size Id Type
/dev/mmcblk1p0 16384 1628159 1611776 787M 83 Linux
假如需要扩展分区为mmcblk0p1
root@somlabs:~# fdisk /dev/mmcblk0
Welcome to fdisk (util-linux 2.29.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/mmcblk1: 3.7 GiB, 3965714432 bytes, 7745536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9de2d76a
Device Boot Start End Sectors Size Id Type
/dev/mmcblk1p1 16384 1628159 1611776 787M 83 Linux
这里也看到Start扇区也是16384
Command (m for help): d
把这个分区删除
Partition 1 has been deleted.
Command (m for help): p
列出分区信息Disk /dev/mmcblk1: 3.7 GiB, 3965714432 bytes, 7745536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9de2d76a
Command (m for help): n
新建分区Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
主分区Partition number (1-4, default 1): 1
分区序号,First sector (2048-7745535, default 2048): 16384
这里要使用起始扇区16384这个值Last sector, +sectors or +size{K,M,G,T,P} (16384-7745535, default 7745535):
默认回车取最大,
Created a new partition 1 of type 'Linux' and of size 3.7 GiB.
Partition #1 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: n
不改变文件分区信号??
Command (m for help): w
写入生效
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy
The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
root@somlabs:~# reboot
resize2fs /dev/mmcblk1p1
resize2fs 1.43.4 (31-Jan-2017)
Filesystem at /dev/mmcblk1p1 is m[ 122.795430] EXT4-fs (mmcblk1p1): resizing filesystem from 201472 to 966144 blocks
ounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
[ 123.861183] EXT4-fs (mmcblk1p1): resized filesystem to 966144
The filesystem on /dev/mmcblk1p1 is now 966144 (4k) blocks long.
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 3.7G 499M 3.0G 15% /
devtmpfs 88M 0 88M 0% /dev
tmpfs 248M 0 248M 0% /dev/shm
tmpfs 248M 3.4M 245M 2% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 248M 0 248M 0% /sys/fs/cgroup
tmpfs 50M 0 50M 0% /run/user/0
1、syslog无法正常工作,处理方法
sudo apt-get install --reinstall rsyslog
chown syslog:adm syslog
sudo service rsyslog restart
2、正确清空syslog方法(不能直接删除)
cat /dev/null > /etc/init.d/syslog
/etc/init.d/rsyslog restart
jenkins 连接linux 传输文件夹下面所有得文件与文件夹
----------
Source files web/dist/**
Remove prefix web
Remote directory /home/server/tomcat2/webapps
----------
#目录为jenkins构建目录下开始
在要传输得文件夹后面写两个 **
如果只写一个* ,dist下的文件夹不会传输
#注意
如果要复制到另外一个目录,则要先清空该目录,否则会报错
cd /sys/kernel/debug/
cat gpio
cat /sys/kernel/debug/pinctrl/pinctrl-rockchip-pinc
trl/pinmux-pins
12木
34火
56土
78金
90水
1、通过读取系统文件节点获取相应CPU温度
cpu0:
cat /sys/class/thermal/thermal_zone0/temp
cpu1:
cat /sys/class/thermal/thermal_zone1/temp
2、读取cpu温度失败问题
RK3288使用TSADC(Temperature-Sensor ADC)来测量CPU温度,支持两种模式:
用户自定义模式: 主动控制读取温度.
自动模式: 自动检测温度,达到阀值就自动报告.
dts配置如下:
&tsadc {
rockchip,hw-tshut-mode = <0>; /* tshut mode 0:CRU 1:GPIO */
rockchip,hw-tshut-polarity = <0>; /* tshut polarity 0:LOW 1:HIGH */
status = "okay";
};
tsadc: tsadc@ff280000 {
compatible = "rockchip,rk3288-tsadc";
reg = <0x0 0xff280000 0x0 0x100>;
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
clock-names = "tsadc", "apb_pclk";
assigned-clocks = <&cru SCLK_TSADC>;
assigned-clock-rates = <5000>;
resets = <&cru SRST_TSADC>;
reset-names = "tsadc-apb";
pinctrl-names = "init", "default", "sleep";
pinctrl-0 = <&otp_gpio>;
pinctrl-1 = <&otp_out>;
pinctrl-2 = <&otp_gpio>;
#thermal-sensor-cells = <1>;
rockchip,hw-tshut-temp = <95000>;
status = "disabled";
};
用指令读取CPU温度:cat sys/class/thermal/thermal_zone0/temp,会报错/system/bin/sh: cat: temp: Invalid argumen。
看开机log,发现有如下报错:
clk: couldn’t get clock 0 for /tsadc@ff280000
说明tsadc缺少clock,查看dts,确实是少了这块。
xin32k: xin32k {
compatible = "fixed-clock";
clock-frequency = <32768>;
clock-output-names = "xin32k";
#clock-cells = <0>;
};
以为这个时钟加上就好了,令人抓狂的是,就加了这么几行代码,机器竟然一直重启开不起机了。
加的这个地方是跟温度是相关的,那就从这个方面入手去思考找问题。会不会是检测到温度的过温阀值,导致重启的呢?
看硬件的连接上:

主控的OTP 引脚是有连接出来到pmic rk808的,如果这个阀值到了reset脚就会动作,然后重启。
由于没有硬性需求一定要这个温度到了阀值就重启的需求,这个时候可以把硬件上的连接电阻去掉,或者软件上把reset的io屏蔽掉。实际起作用的是:pinctrl-1 = <&otp_out>;
屏蔽掉,这时候机器就可以正常开机了。
再查看温度值:cat sys/class/thermal/thermal_zone0/temp
54111
就能正常读到温度值了。
不过不太能理解的是,配置里 rockchip,hw-tshut-temp = <95000>;是超过95度才重启,一开机应该也不会超过阀值才对,开机后读取的温度也就50°C。
1、编写dockers配置文件
使用 dockerfile 创建容器,在容器中进行编译,完美解决编译环境问题,并且与主机环境隔离,互不影响。
首先在主机中安装 docker,请参考:安装教程
创建一个目录作为 docker 工作目录,例如~/docker/,在其中创建文件dockerfile,内容如下:
FROM ubuntu:18.04
MAINTAINER firefly "service@t-firefly.com"
ENV DEBIAN_FRONTEND=noninteractive
RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak
RUN sed -i 's@http://.*ubuntu.com@http://repo.huaweicloud.com@g' /etc/apt/sources.list
RUN apt update
RUN apt install -y build-essential crossbuild-essential-arm64 \
bash-completion vim sudo locales time rsync bc python
RUN apt install -y repo git ssh libssl-dev liblz4-tool lib32stdc++6 \
expect patchelf chrpath gawk texinfo diffstat binfmt-support \
qemu-user-static live-build bison flex fakeroot cmake \
unzip device-tree-compiler python-pip ncurses-dev python-pyelftools \
subversion asciidoc w3m dblatex graphviz python-matplotlib cpio \
libparse-yapp-perl default-jre patchutils swig expect-dev u-boot-tools
RUN apt update && apt install -y -f
# language support
RUN locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
# switch to a no-root user
RUN useradd -c 'firefly user' -m -d /home/firefly -s /bin/bash firefly
RUN sed -i -e '/\%sudo/ c \%sudo ALL=(ALL) NOPASSWD: ALL' /etc/sudoers
RUN usermod -a -G sudo firefly
USER firefly
WORKDIR /home/firefly
2、创建镜像
cd ~/docker
docker build -t sdkcompiler .
# sdkcompiler 是镜像名称,可随意更改,注意命令最后有一个‘.’
# 此过程需要一段时间,请耐心等待
# 此处将主机内 SDK 所在文件夹挂载到容器内,这样容器内就能访问主机中的 SDK 了
# source= 填 SDK 所在目录;target= 填容器内的一个目录,必须是空目录
# ubuntu18 是容器名,firefly 是容器 hostname,均可随意更改
# sdkcompiler 是上一步的镜像名
docker run --privileged --mount type=bind,source=/home/fierfly/proj,target=/home/firefly/proj --name="ubuntu18" -h firefly -it sdkcompiler
# 在容器内输入 exit 即可退出
# 查看所有容器(包括已退出的)
docker ps -a
# 重启一个退出的容器并连接
docker start ubuntu18 # 容器名
docker attach ubuntu18
1、安装编译器
sudo apt install gcc-aarch64-linux-gnu -y
2、安装qemu虚拟器
sudo apt install qemu-system-arm -y
下载上面自动化部署脚本
1、扩展虚拟硬盘
fallocate -l 16G vdb.img