1.修改ubuntu的root密码
sudo passwd root
2.vim安装
vim apt install vim
3.按照ssh服务 {
sudo apt update
sudo apt install openssh-server
启动ssh
sudo systemctl start ssh
开机自启
sudo systemctl enable ssh
防火墙设置(可选)
sudo ufw allow ssh
开启root登录
sudo vim /etc/ssh/sshd_config
PermitRootLogin prohibit-password 找到这个,去掉前面的#,proht...改为yes
重启ssh
sudo systemctl restart ssh
} 4.换源
sudo vim /etc/apt/sources.list
将里面内容填入该文件中
{
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
}
5.开发环境搭建
sudo apt install gawk wget git diffstat unzip
sudo apt install texinfo gcc-multilib build-essential chrpath socat
sudo apt install libsdl1.2-dev xterm ncurses-dev lzop libelf-dev make
sudo apt-get install ssh gcc g++ libssl-dev liblz4-tool
sudo apt-get install expect patchelf binfmt-support
sudo apt-get install qemu-user-static live-build bison flex fakeroot cmake
sudo apt-get install g++-multilib device-tree-compiler libncurses5-dev
6.泰山派sdk
解压出来的.repo包执行下面命令
.repo/repo/repo sync -l -j88
如果报错:/usr/bin/env: ‘python’: No such file or director
apt-get install repo
7.编译内核
①到解压根目录下执行
./build.sh lunch 然后选择3 tspi-v10.mk || ./build.sh device/rockship/rk356x/BoardConfig-rk3566-tspi-v10.mk
②选择buildroot系统
export RK_ROOTFS_SYSTEM=buildroot
③编译
两种选择,
编译全部:包括rootfiles,时间长(几个小时),中间易报错。
仅编译内核:学习设备树或驱动阶段够用,大概半小时,跳过视频教程的docker过程。
./build.sh all || ./build.sh kernel
8.泰山派操作手册网址
https://lceda001.feishu.cn/wiki/Da5owUV4dipiqUkZycbcxckinvc
9.vscode ssh连接主机
root@192.168.xxx.xxxx
10.瑞芯微烧录工具,分散烧录
网址:https://lceda001.feishu.cn/wiki/Da5owUV4dipiqUkZycbcxckinvc
第三章,系统SDK编译,下载,分散镜像
空白区域右键,导入

11.编译好后
./mkfirmware.sh //将各种镜像复制到rock那个文件夹下
./build.sh updateimg
12.rockdev文件夹中会生成update.img

13.adb 连接(单独烧录跳转18点)
烧录好后,设备会被识别为adb设备。
这个时候,可以通过adb连接调试

14.设备树文件
立创给我们定好了一个用户设备树
tspi-rk3566-user-v10-linux.dts

15.驱动文件
立创给我们定好了一个led驱动
leds-gpio.c

16.驱动和设备配对
通过compatible与设备树配对

17.新增驱动,并编译
将这两个文件,放到leds-gpio.c同级目录下

然后到linux中执行,
./build.sh kernel
如果出现下面的这一行,说明编译成功。否则驱动有错误,请检查

18.烧录(单独烧录,适用于只编译linux kerenl(如wsl环境))(注意:烧录的是boot.img,不是uboot.img,吃了很多亏)
第12步,已经生成update.img
同时也生成了boot.img

将这个文件复制出来。
按图所示,勾选这一栏,并选择你刚刚复制出来的boot.img

如果烧录过update.img。会进入adb模式。
长按复位按钮,同事点按boot按钮,会进入loard模式。

这样就可以烧录了。
由于我们的驱动目前还没有绑定设备树,也没编写自动注册驱动程序。所以,目前需要手动注册。但是手动注册不是我们目的,后续直接用设备树进行注册。
20.字符设备驱动在系统中哪里?
根据官方文档,字符设备驱动程序在内核的drivers目录下(/dev)

确实在这里找到了。

21.samba 文件传输
1.安装 Samba
sudo apt update
sudo apt install samba
2.配置共享文件夹(共享的文件路径自己定,/home/xu/linux/rockdev只是我本地的路径)
sudo mkdir -p /home/xu/linux/rockdev(创建文件夹)
sudo chown nobody:nogroup /srv/samba/share
sudo chmod 0777 /srv/samba/share(修改文件夹权限)
3.编辑 Samba 配置文件
sudo vim /etc/samba/smb.conf(编辑文件)
4.在文件的末尾添加以下配置,设置共享文件夹名称、路径及访问权限:(这里使用了vim编辑器)

5.保存并关闭配置文件后,重启 Samba 服务以应用更改:
sudo systemctl restart smbd
sudo systemctl enable smbd
6.在 Windows 系统中,打开文件资源管理器,在地址栏中输入:
\\Linux服务器IP(\\192.168.68.130)
7.回车
就可以看到共享文件夹,这个名字就是你修改配置时候的名字

点进去,就可以看到文件了
文件
obj-m+= leds-user-defind.o
将模块导入泰山派的linux系统中
adb push xx\xx.ko /data/xx.ko
23.加载模块
1.进入adb shell
cd /data
2.找到xx.ko文件
lsmod 查看已存在的module
insmod xx.ko
3.lsmod 查看是否加载成功

4.查看模块打印的数据
dmesg | grep "hello"

5.卸载模块
rmmod xx

24.probe 函数进行驱动加载
平台驱动注册函数
module_platform_driver(gpio_led_driver);
核心驱动注册函数



测试结果

25.probe + 字符设备驱动
1.注意: -static一定要加,否则在3566上运行不了
arm-linux-gnueabihf-gcc -o led led.c -static
2.adb push xxxx.ko /data/xxxx.ko
3.添加可执行权限

4.执行
./led
5.查看结果

26.使用echo,cat 命令控制驱动写入和读出
这里并没有使用APP进行控制,而知直接使用echo,cat命令
APP有点bug,暂时没修复。
