侧边栏壁纸
博主头像
xiaoming博主等级

累死自己,卷死别人,为了小刘而努力!!!

  • 累计撰写 24 篇文章
  • 累计创建 7 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

稚晖君 Planck_Pi 游玩笔记

Administrator
2023-09-24 / 0 评论 / 3 点赞 / 58 阅读 / 10524 字 / 正在检测是否收录...
  • 1. 配置编译环境
    • 1.1 docker
    • 1.2 编译过程中需要的依赖
    • 1.3 交叉编译工具链
    • 1.4 tf卡分区
  • 2. uboot
  • 3. linux kernel
  • 4. rootfs
  • 5. planck-pi操作
    • 5.1 修改主机名
    • 5.2 启用swap
    • 5.3 配置永久静态ip
  • 6. PC上的操作
    • 6.1 linux虚拟机ssh连接pi
    • 6.2 Windows下ssh连接pi
  • 7. QA
  • 8. 参考

1. 配置编译环境

1.1 docker

安装docker可以直接

sudo apt update
sudo apt install docker.io -y

将用户加入docker group中,然后重启

sudo gpasswd -a ${your_user_name} docker
sudo service docker restart

docker进入镜像后先换源

sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list

1.2 编译过程中需要的依赖

sudo apt update
sudo apt install xz-utils nano wget unzip build-essential git bc swig libncurses5-dev libpython3-dev libssl-dev pkg-config zlib1g-dev libusb-dev libusb-1.0-0-dev python3-pip gawk bison flex -y
sudo apt install python python-dev lib32ncurses5 lib32z1 vim dwarves -y

1.3 交叉编译工具链

# 下载
wget http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
# 解压
sudo mkdir /usr/local/arm
sudo tar -vxf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz -C /usr/local/arm
# 配置
sudo nano /etc/profile
# 在末尾添加
PATH=$PATH:/usr/local/arm/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin
# 使之生效
source /etc/profile 
# 验证
arm-linux-gnueabi-gcc -v

1.4 tf卡分区

# 可以使用gparted进行分区
sudo apt-get install gparted -y

分两个分区

boot	32M		FAT16
rootfs	--		EXT4

2. uboot

下载u-boot源码

git clone https://github.com/Lichee-Pi/u-boot.git -b nano-v2018.01
cd u-boot
//git branch -a
//git checkout nano-v2018.01

为了方便后边编译在248行添加 目标构架是arm,交叉编译器是

vim Makefile

ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

在uboot根目录进行编译配置为不带spi,来在根目录生成.config

make licheepi_nano_defconfig

图形化配置

make menuconfig
#Enable boot arguments
console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw
#bootcmd value
load mmc 0:1 0x80008000 zImage;load mmc 0:1 0x80c08000 suniv-f1c100s-licheepi-nano.dtb;bootz 0x80008000 - 0x80c08000;

回到uboot根目录进行编译

make -j4

确定已经生成了u-boot-sunxi-with-spl.bin文件

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

3. linux kernel

将下载的linux.tar.gz上传到虚拟机中。下载链接
提取码:f1g3

# 解压

tar -zxvf linux.tar.gz

进入源码文件夹

cd linux-nano-5.2-tf

编译

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4

将zImage和suniv-f1c100s-licheepi-nano.dts复制到boot分区

4. rootfs

配置构建环境

sudo apt install qemu-user-static debootstrap -y
mkdir rootfs
cd rootfs

# 从华为源下载
sudo debootstrap --foreign --verbose --arch=armel  buster rootfs-debian http://mirrors.huaweicloud.com/debian/
cd rootfs-debian

# 挂载
sudo mount --bind /dev dev/
sudo mount --bind /sys sys/
sudo mount --bind /proc proc/
sudo mount --bind /dev/pts dev/pts/
cd ..
sudo cp /usr/bin/qemu-arm-static rootfs-debian/usr/bin/
sudo chmod +x rootfs-debian/usr/bin/qemu-arm-static
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs-debian /debootstrap/debootstrap --second-stage --verbose
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs-debian

配置文件系统

//vi /etc/apt/sources.list
//# 注释掉原来的源,加这个
//deb http://mirrors.huaweicloud.com/debian buster main
apt update

上面最后一条命令chroot完成,此时可以用 apt-get等命令给文件系统安装需要的软件包,修改root登录密码等操作:

apt install net-tools usbutils udhcpc vim openssh-server htop pciutils -y
apt install python3 gcc python -y
# 修改密码
passwd root

//# 添加用户
//groupadd <用户组>
//useradd -m -g <用户组> -s /bin/bash <用户名>
//passwd <用户名>

//# 配置时区
//cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 添加SSH权限,添加PermitRootLogin yes
nano /etc/ssh/sshd_config
PermitRootLogin yes

可能会出现无法使用方向键的问题,输入 bash命令进入bash窗口即可。

当所有的内容制作完成,就可以清理缓存,打包之后就可以替换你的文件系统了

apt clean
exit  #退出chroot
sudo rm rootfs-debian/usr/bin/qemu-arm-static

卸载刚在挂载的文件夹。

cd rootfs-debian
//sudo umount   dev/pts/
sudo umount   dev/
//sudo umount   sys/
//sudo umount   proc/
//sudo umount   dev/pts/

打包文件。

sudo tar -cvf ../rootfs.tar .    #要注意那个.  代表当前目录
cd ..
sudo cp rootfs.tar /media/ly/rootfs		#ly换成你的用户名
cd /media/ly/rootfs
sudo tar -xvf rootfs.tar
sudo rm rootfs.tar

tf卡可以插进planckpi了,使用串口连接上

5. planck-pi操作

通过串口连接pc进行操作

5.1 修改主机名

HOSTNAME=lycraftpi			#lycraftpi可以换成别的名字
echo $HOSTNAME > /etc/hostname
echo $HOSTNAME > /proc/sys/kernel/hostname
sed -i '/localhost/s/$/\t'"$HOSTNAME"'/g' /etc/hosts
# 查看Debian版本号
cat /etc/os-release

5.2 启用swap

芯片的SiP内存只有64MB,大部分情况下都不够用,所以需要开启swap使用内存卡的一部分空间来作为交换内存。

通过free -m来查看下内存使用状况:

# free -m
             total        used        free      shared  buff/cache   available
Mem:             54          15           6           0          31          34
Swap:             0           0           0

创建一个自定义的目录 /opt/images/

mkdir /opt/images/
#rm -rf /opt/images/swap

创建一个需要内存大小的文件,如512M:

dd if=/dev/zero of=/opt/images/swap bs=1M count=512

把创建的文件变成SWAP分区并启用:

mkswap /opt/images/swap
swapon /opt/images/swap

free -m看看SWAP是否生效,ok的话设置开机自动挂载swap:

nano /etc/fstab
# 添加一行:
/opt/images/swap swap swap defaults 0 0

5.3 配置永久静态ip

vim /etc/network/interfaces

# 添加以下内容
allow-hotplug usb0
auto usb0
iface usb0 inet static
address 192.168.2.100
netmask 255.255.255.0
gateway 192.168.2.1

# 启用网卡
ifup usb0

# 开机自启
vim /etc/init.d/rcS

# 添加以下内容
ifup lo
ifup usb0

配置DNS

vim /etc/resolv.conf
# 在nameserver下添加
nameserver 223.5.5.5		#阿里的DNS

6. PC上的操作

6.1 linux虚拟机ssh连接pi

sudo vim /etc/network/interfaces

# 添加以下内容
allow-hotplug ens35u1
auto ens35u1
iface ens35u1 inet static
address 192.168.2.1
netmask 255.255.255.0

# 重启下

# 输入以下指令后planckpi就可以上网了
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward > /dev/null
sudo iptables -P FORWARD ACCEPT
sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.2.0/24

接下来通过ssh连接到planckpi玩耍吧

ssh root@192.168.2.100

ping www.baidu.com

6.2 Windows下ssh连接pi

~待填坑

7. QA

  • /bin/sh: 1: python: not found

    ls -l /usr/bin/python*
    sudo ln -s /usr/bin/python3 /usr/bin/python
    
  • No rule to make target ‘debian/canonical-certs.pem’, needed by ‘certs/x509_certificate_list’. Stop.

    # https://blog.csdn.net/u010629326/article/details/73196311
    
    vim .config
    CONFIG_SYSTEM_TRUSTED_KEYS=""
    
  • BTF: .tmp_vmlinux.btf: pahole (pahole) is not available

    sudo apt-get install dwarves
    
  • error writing to /tmp/ccEmdmHW.s: No space left on device

    虚拟机硬盘空间不够,扩大空间就好了
    
  • desktop系统下 管理员权限拖拽文件

    在桌面的终端中输入sudo nautilus
    

8. 参考

3

评论区