Kernel4
RK Linux
SDK
的buildroot对ros支持4的步骤不友好,也没有记录教程,项目需求只好用ubuntu做文件系统。的 Ubuntu arm64 的图片可以在这里找到:
可以直接下载,或者通过以下的方法来下载:$ mkdir ~/ubuntu-rootfs && cd ubuntu-rootfs然后,通过以下的方法来下载arm64的发布软件:$ wget
$ tar -xpf ubuntu-base-16.04.2-base-arm64.tar.gz解压缩后是这样的:用户@user:~/ubuntu-rootfs$ ls bin dev home media opt root ***in sys usr
boot etc lib mnt proc run srv tmp var
2. 安装 qemu-user-static
$ pwd
/home/user/ubuntu-rootfs
$ apt-get install qemu-user-static
$ cp /usr/bin/qemu-aarch64-static usr /bin
$ cp -b /etc/resolv.conf etc here/
我们要注意的是针对我们arm64的qemu-user-static安装的文件是qemu-aarch64-static。
3.mount proc, sys, dev, dev /pts到新的文件系统
利用一个简单的ch-mount.sh脚本来完成这个动作。
它可以我们mount及unmount。
#!/bin/bash
#
#sudo chgrp -R root ubuntu-rootfs/
#sudo chown -R root ubuntu-rootfs/
function mnt() {
echo “MOUNTING”
sudo mount -t proc /proc ${2}proc
sudo mount -t sysfs /sys ${2}sys
sudo mount -o bind /dev ${2 }开发
sudo mount -o bind /dev/pts ${2}dev/pts
sudo chroot ${2}
}
function umnt() {
echo “UNMOUNTING”
sudo umount ${2}proc
sudo umount ${2}sys
sudo umount ${ 2}dev/pts
sudo umount ${2}dev
}
if [ “$1” == “-m” ] && [ -n “$2” ] ;
然后
mnt $1 $2
elif [ “$1” == “-u” ] && [ -n “$2” ];
然后
umnt $1 $2
else
echo “”
echo “缺少第一个、第二个或两个参数”
echo “”
echo “第一个参数可以是以下参数之一:-m(mount) 或 -u(umount) ”
echo “”
echo “例如:ch-mount -m /mediasdcard/”
echo “”
echo 第一个参数:${1}
echo 第二个参数:${2}
fi
把下载好的脚本喷涂/ubuntu-rootf目录的上一级目录,并注意修改权限:
user@user:~$ chmod a+x ch-mount.shmount
动作,退出后一定要执行重新执行unmount,否则你的本机ubuntu系统会出问题,需要重启
user@user:~$ sudo bash ch-mount.sh -m ubuntu-rootfs/ [
sudo] user 的密码:
MOUNTING
root@user:/#这样就可以
进入chroot的环境中了。
更新系统并安装所需要的包
使用如下命令来更新系统,并且安装所需要的包。网络环境,安装的时间可能会有差异。
root@user:/# apt-get update
root@user:/# apt-get install language-pack-en-base sudo ssh net-tools ethtool wireless-tools lxde xfce4-power-manager xinit xorg network-manager iputils-ping rsyslog lightdm-gtk-greeter alsa-utils gnome -mplayer bash-completion lxtask htop python-gobject-2 python-gtk2 synaptic --no-install-recommends
apt install bash-completion
apt install vim
如不能安装更新一下源
apt update安装
dhcp server
apt install isc-dhcp-server
gcc make g++
apt install build-essential
4.系统基础配置
在chroot环境中配置
root@user:/# useradd -s ‘/bin/bash’ -m -G adm,sudo vampire
root@user:/# passwd vampire
root @user:/# passwd root设置主机
名
root@user:/# echo ‘ubuntu.vampire’ 》 /etc/hostname
自动设置更新DNS
root@user:/# apt-get install resolvconf
root@user:/# dpkg-reconfigure resolvconf
添加主机入口到/etc/hosts:
root@user:/#echo “127.0.0.1 localhost” 》 /etc /hosts
root@user:/#echo “127.0.0.1 ubuntu.vampire” 》 /etc/hosts
root@user:/#echo “127.0.1.1 vampire” 》 /etc/hosts
设置时区
root@user:/# apt- get install tzdata
root@user:/# dpkg-reconfigure tzdata
在lib目录下创建目录并进入我们自己硬件相关的模块文件
可以从主机中进入我们想要的arm64的模块系统中,比如我们想要的arm64的模块系统中:
root@user:/# cp -r /opt/out/modules/3.4.5 ~/ubuntu-rootfs/lib/modules
在这里,我们把我们想要的定制包 ~ 到lib下面的modules中。
退出并制作可烧录的此处开机@user
:/#退出
后一定要注意,退出umount出来,直接掉会执行一次本机系统挂载
退出
user@user**:〜$密码
/home/user/user@user:~$./ch-mount.sh -u ubuntu-rootfs /
proc target is busy
如果umount失败,需要重启,然后直接下一步即可使用
5.制作打包ubuntu文件系统启动
dd指令空的容器
$ dd if=/dev/zero of=ubuntu-rootfs.img bs1M count=4096
bs以count是容器的大小,这个具体来的图像有多大看,编译规则后内容有镜像6g,所以这里可以把count=8192自适应。
$ sudo mkfs.ext4 ubuntu-rootfs.img
将arm64文件系统制作到ubuntu-rootfs.img
$ mkdir ubuntu-mount
$ sudo mount ubuntu-rootfs.img ubuntu-mount/
$ sudo cp -rfp ubuntu-rootfs/* ubuntu-mount/
$ sudo umount ubuntu-mount/
$ e2fsck -p -f ubuntu-rootfs.img
$ resize2fs -M ubuntu-rootfs.img
最终,我们生成我们需要的ubuntu-rootfs.img文件:
user@user:~$ ls ubuntu-rootfs.img -hal
-rw-rw-r-- 1 个用户用户 2.0G 10 月 31 日 16:23 ubuntu-rootfs.img
user@user:~$ 文件 ubuntu-rootfs.img
ubuntu-rootfs.img: Linux rev 1.0 ext4 文件系统数据,UUID =9ed38b-e81a-4ec9-a8e0-bd185f223936 (需要日志恢复) (extents) (large files) (huge files)
6.下载到板子中引导
使用rk自带工具
。/upgrade_tool di -rootfs ubuntu-
rootfs.img上电,帮助
Kernel4
RK Linux
SDK
的buildroot对ros支持4的步骤不友好,也没有记录教程,项目需求只好用ubuntu做文件系统。的 Ubuntu arm64 的图片可以在这里找到:
可以直接下载,或者通过以下的方法来下载:$ mkdir ~/ubuntu-rootfs && cd ubuntu-rootfs然后,通过以下的方法来下载arm64的发布软件:$ wget
$ tar -xpf ubuntu-base-16.04.2-base-arm64.tar.gz解压缩后是这样的:用户@user:~/ubuntu-rootfs$ ls bin dev home media opt root ***in sys usr
boot etc lib mnt proc run srv tmp var
2. 安装 qemu-user-static
$ pwd
/home/user/ubuntu-rootfs
$ apt-get install qemu-user-static
$ cp /usr/bin/qemu-aarch64-static usr /bin
$ cp -b /etc/resolv.conf etc here/
我们要注意的是针对我们arm64的qemu-user-static安装的文件是qemu-aarch64-static。
3.mount proc, sys, dev, dev /pts到新的文件系统
利用一个简单的ch-mount.sh脚本来完成这个动作。
它可以我们mount及unmount。
#!/bin/bash
#
#sudo chgrp -R root ubuntu-rootfs/
#sudo chown -R root ubuntu-rootfs/
function mnt() {
echo “MOUNTING”
sudo mount -t proc /proc ${2}proc
sudo mount -t sysfs /sys ${2}sys
sudo mount -o bind /dev ${2 }开发
sudo mount -o bind /dev/pts ${2}dev/pts
sudo chroot ${2}
}
function umnt() {
echo “UNMOUNTING”
sudo umount ${2}proc
sudo umount ${2}sys
sudo umount ${ 2}dev/pts
sudo umount ${2}dev
}
if [ “$1” == “-m” ] && [ -n “$2” ] ;
然后
mnt $1 $2
elif [ “$1” == “-u” ] && [ -n “$2” ];
然后
umnt $1 $2
else
echo “”
echo “缺少第一个、第二个或两个参数”
echo “”
echo “第一个参数可以是以下参数之一:-m(mount) 或 -u(umount) ”
echo “”
echo “例如:ch-mount -m /mediasdcard/”
echo “”
echo 第一个参数:${1}
echo 第二个参数:${2}
fi
把下载好的脚本喷涂/ubuntu-rootf目录的上一级目录,并注意修改权限:
user@user:~$ chmod a+x ch-mount.shmount
动作,退出后一定要执行重新执行unmount,否则你的本机ubuntu系统会出问题,需要重启
user@user:~$ sudo bash ch-mount.sh -m ubuntu-rootfs/ [
sudo] user 的密码:
MOUNTING
root@user:/#这样就可以
进入chroot的环境中了。
更新系统并安装所需要的包
使用如下命令来更新系统,并且安装所需要的包。网络环境,安装的时间可能会有差异。
root@user:/# apt-get update
root@user:/# apt-get install language-pack-en-base sudo ssh net-tools ethtool wireless-tools lxde xfce4-power-manager xinit xorg network-manager iputils-ping rsyslog lightdm-gtk-greeter alsa-utils gnome -mplayer bash-completion lxtask htop python-gobject-2 python-gtk2 synaptic --no-install-recommends
apt install bash-completion
apt install vim
如不能安装更新一下源
apt update安装
dhcp server
apt install isc-dhcp-server
gcc make g++
apt install build-essential
4.系统基础配置
在chroot环境中配置
root@user:/# useradd -s ‘/bin/bash’ -m -G adm,sudo vampire
root@user:/# passwd vampire
root @user:/# passwd root设置主机
名
root@user:/# echo ‘ubuntu.vampire’ 》 /etc/hostname
自动设置更新DNS
root@user:/# apt-get install resolvconf
root@user:/# dpkg-reconfigure resolvconf
添加主机入口到/etc/hosts:
root@user:/#echo “127.0.0.1 localhost” 》 /etc /hosts
root@user:/#echo “127.0.0.1 ubuntu.vampire” 》 /etc/hosts
root@user:/#echo “127.0.1.1 vampire” 》 /etc/hosts
设置时区
root@user:/# apt- get install tzdata
root@user:/# dpkg-reconfigure tzdata
在lib目录下创建目录并进入我们自己硬件相关的模块文件
可以从主机中进入我们想要的arm64的模块系统中,比如我们想要的arm64的模块系统中:
root@user:/# cp -r /opt/out/modules/3.4.5 ~/ubuntu-rootfs/lib/modules
在这里,我们把我们想要的定制包 ~ 到lib下面的modules中。
退出并制作可烧录的此处开机@user
:/#退出
后一定要注意,退出umount出来,直接掉会执行一次本机系统挂载
退出
user@user**:〜$密码
/home/user/user@user:~$./ch-mount.sh -u ubuntu-rootfs /
proc target is busy
如果umount失败,需要重启,然后直接下一步即可使用
5.制作打包ubuntu文件系统启动
dd指令空的容器
$ dd if=/dev/zero of=ubuntu-rootfs.img bs1M count=4096
bs以count是容器的大小,这个具体来的图像有多大看,编译规则后内容有镜像6g,所以这里可以把count=8192自适应。
$ sudo mkfs.ext4 ubuntu-rootfs.img
将arm64文件系统制作到ubuntu-rootfs.img
$ mkdir ubuntu-mount
$ sudo mount ubuntu-rootfs.img ubuntu-mount/
$ sudo cp -rfp ubuntu-rootfs/* ubuntu-mount/
$ sudo umount ubuntu-mount/
$ e2fsck -p -f ubuntu-rootfs.img
$ resize2fs -M ubuntu-rootfs.img
最终,我们生成我们需要的ubuntu-rootfs.img文件:
user@user:~$ ls ubuntu-rootfs.img -hal
-rw-rw-r-- 1 个用户用户 2.0G 10 月 31 日 16:23 ubuntu-rootfs.img
user@user:~$ 文件 ubuntu-rootfs.img
ubuntu-rootfs.img: Linux rev 1.0 ext4 文件系统数据,UUID =9ed38b-e81a-4ec9-a8e0-bd185f223936 (需要日志恢复) (extents) (large files) (huge files)
6.下载到板子中引导
使用rk自带工具
。/upgrade_tool di -rootfs ubuntu-
rootfs.img上电,帮助
举报