吐槽一下自己,悲催了呀,安装个pycharm引发了一系列惨案,在最新的pycharm的版本上对于16版本的python3.5不支持,卸载之后终端挂了,apt-get install挂了,重新弄一个系统吧,顺便记录一下,嵌入式的软件安装。

Ubuntu和Windows之间的复制粘贴

1
2
3
4
sudo apt-get autoremove open-vm-tools
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
reboot

安装编程工具

make工具安装

1
sudo apt-get install make

vscode工具安装

官网下载安装包https://code.visualstudio.com/

https://vscode.cdn.azure.cn/stable/e7e037083ff4455cf320e344325dacb480062c3c/code_1.83.0-1696350811_amd64.deb

1
sudo dpkg -i code_1.83.0-1696350811_amd64.deb

在任意路径的终端命令行下输入code命令,即可打开vscode;

安装交叉编译工具

Linaro Releases

安装gcc-arm-linux-gnueabihf 工具以上是官网地址。

将压缩包放到/usr/local/arm目录下解压

1
2
sudo vi /etc/profile #打开/etc/profile 以后,在最后面输入如下所示内容:
export PATH=$PATH:/usr/local/arm/gcc/bin

安装相关库
在使用交叉编译器之前还需要安装一下其它的库,命令如下:

1
2
sudo apt-get install lsb-core lib32stdc++6 
arm-linux-gnueabihf-gcc -v #重启后使用命令查询

安装tftp服务

Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器,需要安装 tftp-hpa 和 tftpd-hpa,命令如下:

1
2
sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd

和 NFS 一样, TFTP 也需要一个文件夹来存放文件,在用户目录下新建一个目录,命令如下:

1
2
mkdir /home/zuozhongkai/linux/tftpboot
chmod 777 /home/zuozhongkai/linux/tftpboot

这 样 我 就 在 我 的 电 脑 上 创 建 了 一 个 名 为 tftpboot 的 目 录 ( 文 件 夹 ) , 路 径 为
/home/moss/linux/tftpboot。注意!我们要给 tftpboot 文件夹权限,否则的话 uboot 不能从tftpboot 文件夹里面下载文件。
最后配置 tftp,安装完成以后新建文件/etc/xinetd.d/tftp, 如果没有/etc/xinetd.d 目录的话自行创建, 然后在里面输入如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/moss/linux/tftpboot/
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

完了以后启动 tftp 服务,命令如下:

1
sudo service tftpd-hpa start

打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:

1
2
3
4
5
6
# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/moss/linux/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。
最后输入如下命令, 重启 tftp 服务器:

1
sudo service tftpd-hpa restart 

安装NFS服务

进行 Linux 驱动开发的时候需要 NFS 启动,因此要先安装并开启 Ubuntu 中的 NFS 服务,使用如下命令安装 NFS 服务:

1
sudo apt-get install nfs-kernel-server rpcbind 

要先配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports:sudo vi /etc/exports

1
sudo vi /etc/exports

打开/etc/exports 以后在后面添加如下所示内容:

1
/home/zuozhongkai/linux/nfs *(rw,sync,no_root_squash) 

重启 NFS 服务,使用命令如下:

1
sudo /etc/init.d/nfs-kernel-server restart

SSH 服务开启
开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu,比如使用 SecureCRT, Ubuntu 下使用如下命令开启 SSH 服务:

1
sudo apt-get install openssh-server 

nfs出现的问题

这个问题会出现在Ubuntu18上,NFS挂载失败 - VFS: Unable to mount root fs on unknown-block(2,0)。提示:

1
2
[  101.168510] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)
[ 101.176792] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0) ]---

解决方式一:

改开发板的uboot参数

1
2
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.28.254:/rootfs ip=192.168.28.234:192.168.28.254:192.168.28.1:255.255.255.0::eth0:off'

改为

1
2
setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.28.254:/rootfs,v3,tcp ip=192.168.28.234:192.168.28.254:192.168.28.1:255.255.255.0::eth0:off'

就可以挂载成功。

方式二:更改ubuntu的NFS配置参数

上面那种方式是指定bootargs变量,但是如果你移植的uboot和linux内核版本不是很新的话,uboot和内核还不支持NFS-V3版本协议,那么就只能修改ubuntu的NFS配置了。

问题解决:

1
vim /etc/default/nfs-kernel-server 

在文件末尾加入:

1
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"

重启NFS:

1
/etc/init.d/nfs-kernel-server restart

这样就能开发板就能挂载上了!
都经过了可靠的测试都是好用的。

tslib 移植与使用

tslib 是一个开源的第三方库,用于触摸屏性能调试 。

1、获取 tslib 源码
首先肯定是获取 tslib 的源码, git 地址为 https://github.com/kergoth/tslib,
2、修改 tslib 源码所属用户
修改解压得到的 tslib-1.21 目录所属用户为当前用户,这一步一定要做!否则在稍后的编译中会遇到各种问题。我当前 ubuntu 的登录用户名为“moss”,那么修改命令如下:

1
sudo chown moss:moss tslib-1.21 -R

3、 ubuntu 工具安装
编译 tslib 的时候需要先在 ubuntu 中安装一些文件,防止编译 tslib 过程中出错,命令如下
所示:

1
2
3
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

4、编译 tslib
首先在 ubuntu 中创建一个名为“tslib”的目录存放编译结果,比如我们创建的 tslib 目录全路径为: /home/moss/linux/tool/tslib。
接下来输入如下命令配置并编译 tslib:

1
2
3
4
5
cd tslib-1.21/ //进入 tslib 源码目录
./autogen.sh
./configure --host=arm-linux-gnueabihf --prefix=/home/moss/linux/tool/tslib
make //编译
make install //安装

注意,在使用./configure 配置 tslib 的时候“–host”参数指定编译器,“–prefix”参数指定编译完成以后的 tslib 文件安装到哪里,这里肯定是安装到我们刚刚创建的“tslib”目录下。
bin 目录下是可执行文件,包括 tslib 的测试工具。 etc 目录下是 tslib 的配置文件, lib 目录下是相关的库文件。

Qt软件安装

进入网址 http://download.qt.io/archive/qt/5.12/5.12.9/下载 Qt 5.12.9。

1
wget http://download.qt.io/archive/qt/5.12/5.12.9/qt-opensource-linux-x64-5.12.9.run

下载速度奇慢,建议使用迅雷下载,迅雷下完不愿用再卸载。(安装软件)

1
2
chmod u+x qt-opensource-linux-x64-5.12.9.run
sudo ./qt-opensource-linux-x64-5.12.9.run

扩展分区工具

使用GParted Partition Editor 软件

1
sudo apt-get install gparted

Pycharm软件安装

查询自己系统的python3的版本,pycharm不同版本支持不同python版本。

1
python3 --version

之后去pythcharm官网进行下载对应的版本,进行解压压缩包。将解压的文件移动到/opt/目录下

1
cd pycharm-community-2022.3.3 /opt/

执行/bin/里面的pycharm.sh文件。

libjpeg库

libjpeg 是一个完全用 C 语言编写的函数库,包含了 JPEG 解码(解压缩) 、 JPEG 编码(创建压缩) 和其他的 JPEG 功能的实现。 可以使用 libjpeg 库对.jpg 或.jpeg 压缩文件进行解压或者生成.jpg 或.jpeg 压缩文件。

打开 http://www.ijg.org/files/链接地址 ,下载jpegsrc.v9b.tar.gz 源码包

1
tar -xzf jpegsrc.v9b.tar.gz

先对交叉编译工具的环境进行初始化,使用 source执行交叉编译工具安装目录下的 environment-setup-cortexa7hf-neon-poky-linux-gnueabi 脚本文件

1
2
3
4
source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi
./configure --host=arm-poky-linux-gnueabi --prefix=/home/moss/linux/tool/jpeg/
make
make install

将bin和lib文件夹下的文件转给根文件系统/usr/bin和/usr/lib下。

SSH库

主要是用来开启SSH服务

下载zlib库源码Index of /fossils (zlib.net)

下载openssh源码库https://fastly.cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/