yunsur / phicomm-n1

Armian for Phicomm N1
GNU General Public License v2.0
193 stars 75 forks source link

小白求助,求大神指导添加版本 #16

Closed gzxief closed 2 years ago

gzxief commented 2 years ago

小白一个,修改了两个文件,成功上了armbian22.05,BRANCH=current的内核为5.17.3,正常刷入S905W的盒子里,编译armbian的时候,版本只有四个,求大神指导如何添加jammy(ubuntu22.04)和sid(debian12)的版本,谢谢!! 另外修改了几个文件,在$GITHUB_SOURCE添加了网址https://git.metauniverse-cn.com/,和修改U-boot的网址,在 git时可以提速,第一次编译用了10个小时,现在基本上40分钟左右就可以了

gzxief commented 2 years ago

还有。最后生成img文件,加上img.xz,得出的文件只有200-300M左右,COMPRESS_OUTPUTIMAGE=sha,img.xz,谢谢

carrot0219 commented 2 years ago

老哥 可以告诉下如何合并最新armbian22.05和最新内核代码么

carrot0219 commented 2 years ago

22.02版本好像没自动安装docker autojump了 ssh连接的时候硬件信息没了。我还以为下载依赖包出错了

yunsur commented 2 years ago

1、22.05 不用这么早合并吧! 2、22.02 有docker 和 autojump 代码中都有的。

gzxief commented 2 years ago

22.02版本好像没自动安装docke

老哥 可以告诉下如何合并最新armbian22.05和最新内核代码么

修改phicomm-n1文件下的VERSION文件,把里面的22.02.0改为22.05.0-trunk就可以升级到22.05, 修改在/phicomm-n1-dev/config/sources/families下的arm-64.conf文件第26行把5.15.y改为5.17.y就可以了,但是新版本如jammy和sid不会添加

gzxief commented 2 years ago

1、22.05 不用这么早合并吧! 2、22.02 有docker 和 autojump 代码中都有的。

就是想体验一下,麻烦大神指点,谢谢

yunsur commented 2 years ago

升级 22.05 还有很多脚本要改,并不是修改版本号 内核不追新,5.15 lts 挺好的,也没有新特性是必须升级5.17的

gzxief commented 2 years ago

升级 22.05 还有很多脚本要改,并不是修改版本号 内核不追新,5.15 lts 挺好的,也没有新特性是必须升级5.17的

实际修改了VERSION,编译时,自动下载22.05的版本,不需要修改脚本,我刷到盒子里,cat /etc/os-release,提示是PRETTY_NAME="Armbian 22.05.0-trunk Bullseye"

carrot0219 commented 2 years ago

感谢

carrot0219 commented 2 years ago

1、22.05 不用这么早合并吧! 2、22.02 有docker 和 autojump 代码中都有的。

为啥我编译出来的autojump docker都没得 是不是git的时候没下载到本地的原因

carrot0219 commented 2 years ago

大佬 昨天我编译了两次 docker貌似不会自动安装 python倒是有

yunsur commented 2 years ago

config/boards/arm-64.conf 你编译环境里面这个配置是否有 docker-ce

carrot0219 commented 2 years ago

config/boards/arm-64.conf 你编译环境里面这个配置是否有 docker-ce

默认配置什么都没改

gzxief commented 2 years ago

把docker-ce放在第一位试试,4月11日编译的带了docker,4月13后编译就没带,不过我也不喜欢带docker,我把docker=no,把SMB等都删除了,把docker-ce等都删除了

carrot0219 commented 2 years ago

好的 感谢 Created: Tue Apr 19 16:46:01 2022 Image Type: ARM Linux Script (uncompressed) Data Size: 767 Bytes = 0.75 KiB = 0.00 MiB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 759 Bytes = 0.74 KiB = 0.00 MiB cp: cannot stat '/home/liqi/Desktop/phicomm-n1/cache/sources/bluez-firmware-git/broadcom/BCM4345C0.hcd': No such file or directory [ o.k. ] Enabling serial console [ ttyAML0 ] [ o.k. ] Building kernel splash logo [ bullseye ] [ .... ] Installing extras-buildpkgs [ hostapd ]

编译的时候报错 好像这个bluez-firmware-git也没拉去代码 但是编译出来不影响使用

gzxief commented 2 years ago

一、修改\phicomm-n1-dev\config中的targets.conf、targets-cli-beta.conf、targets-desktop-beta.conf 参照文件上面的信息,添加sid和jammy

二、修改\phicomm-n1-dev\lib中的chroot-buildpackages.sh文件 第39行后第40行前添加一行 apt_mirror['sid']="$DEBIAN_MIRROR" 第53或54行在sid后面添加 |jammy 第113或114行在sid后面添加 |jammy 第136或137行 添加一行 gcc_version['jammy']='12'

你就会发现很神奇的,支持了最新的sid和jammy了,但是我编译sid时很慢,中途还出错两次,没改什么的情况下,再次编译,又成功了,jammy就一次成功

gzxief commented 2 years ago

好的 感谢 Created: Tue Apr 19 16:46:01 2022 Image Type: ARM Linux Script (uncompressed) Data Size: 767 Bytes = 0.75 KiB = 0.00 MiB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 759 Bytes = 0.74 KiB = 0.00 MiB cp: cannot stat '/home/liqi/Desktop/phicomm-n1/cache/sources/bluez-firmware-git/broadcom/BCM4345C0.hcd': No such file or directory [ o.k. ] Enabling serial console [ ttyAML0 ] [ o.k. ] Building kernel splash logo [ bullseye ] [ .... ] Installing extras-buildpkgs [ hostapd ]

编译的时候报错 好像这个bluez-firmware-git也没拉去代码 但是编译出来不影响使用 已支持最新的sid和jammy了

yunsur commented 2 years ago

好的 感谢 Created: Tue Apr 19 16:46:01 2022 Image Type: ARM Linux Script (uncompressed) Data Size: 767 Bytes = 0.75 KiB = 0.00 MiB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 759 Bytes = 0.74 KiB = 0.00 MiB cp: cannot stat '/home/liqi/Desktop/phicomm-n1/cache/sources/bluez-firmware-git/broadcom/BCM4345C0.hcd': No such file or directory [ o.k. ] Enabling serial console [ ttyAML0 ] [ o.k. ] Building kernel splash logo [ bullseye ] [ .... ] Installing extras-buildpkgs [ hostapd ] 编译的时候报错 好像这个bluez-firmware-git也没拉去代码 但是编译出来不影响使用 已支持最新的sid和jammy了

蓝牙固件之后我去适配一下

gzxief commented 2 years ago

虽然成功编译最新的sid和jammy,可以烧录到TF或U盘,可以启动,但写不进emmc里,提示Start script create MBR and filesystem和 UNABLE TO FIND ROOT OF THE RUNNING SYSTEM!!!。但其他版本可以,比如hirsute等

gzxief commented 2 years ago

虽然成功编译最新的sid和jammy,可以烧录到TF或U盘,可以启动,但写不进emmc里,解决方法,在\phicomm-n1-dev\packages\bsp\arm-64\目录下增加一个sh运行文件,注意权限,文件内容如下:

!/bin/sh

echo "Start install armbian to emmc..."

root_devname=$(df / | tail -n1 | awk '{print $1}' | awk -F '/' '{print substr($3, 1, length($3)-2)}') if lsblk -l | grep -E "^${root_devname}boot0" >/dev/null; then error_msg "you are running in emmc mode, please boot system with usb or tf card!" fi

install_emmc="$(lsblk -l -o NAME | grep -oE '(mmcblk[0-9]?boot0)' | sed "s/boot0//g")" if [[ "${install_emmc}" == "" ]]; then error_msg "No emmc can be found to install the armbian system!" fi

DEV_EMMC="/dev/${install_emmc}" echo "DEV_EMMC: ${DEV_EMMC}"

Get kernel TEXT_OFFSET, For u-boot.ext and u-boot.emmc

With TEXT_OFFSET patch is [ 0108 ], without TEXT_OFFSET patch is [ 0000 ]

K510="1" [[ "$(hexdump -n 15 -x "/boot/zImage" 2>/dev/null | head -n 1 | awk '{print $7}')" == "0108" ]] && K510="0"

Generate New ROOTFS UUID

ROOTFS_UUID="$(cat /proc/sys/kernel/random/uuid)" [ -z "${ROOTFS_UUID}" ] && ROOTFS_UUID="$(uuidgen)" [ -z "${ROOTFS_UUID}" ] && error_msg "The new UUID is invalid, cannot continue."

echo "Start backup u-boot default"

dd if="${DEV_EMMC}" of=/root/u-boot-default-aml.img bs=1M count=4

echo "Start create MBR and partittion"

parted -s "${DEV_EMMC}" mklabel msdos parted -s "${DEV_EMMC}" mkpart primary fat32 700M 1212M parted -s "${DEV_EMMC}" mkpart primary ext4 1213M 100%

echo "Start restore u-boot"

dd if=/root/u-boot-default-aml.img of="${DEV_EMMC}" conv=fsync bs=1 count=442 dd if=/root/u-boot-default-aml.img of="${DEV_EMMC}" conv=fsync bs=512 skip=1 seek=1

sync

echo "Done"

echo "Start copy system for eMMC."

mkdir -p /ddbr chmod 777 /ddbr

PART_BOOT="${DEV_EMMC}p1" PART_ROOT="${DEV_EMMC}p2" DIR_INSTALL="/ddbr/install"

if [ -d $DIR_INSTALL ] ; then rm -rf $DIR_INSTALL fi mkdir -p $DIR_INSTALL

if grep -q $PART_BOOT /proc/mounts ; then echo "Unmounting BOOT partiton." umount -f $PART_BOOT fi echo -n "Formatting BOOT partition..." mkfs.vfat -n "BOOT_EMMC" $PART_BOOT echo "done."

mount -o rw $PART_BOOT $DIR_INSTALL

echo -n "Cppying BOOT..." cp -r /boot/* $DIR_INSTALL && sync echo "done."

echo -n "Edit init config..." sed -e "s/ROOTFS/ROOT_EMMC/g" \ -i "$DIR_INSTALL/uEnv.txt" echo "done."

rm $DIR_INSTALL/aml* rm $DIR_INSTALL/boot.ini mv -f $DIR_INSTALL/boot-emmc.ini $DIR_INSTALL/boot.ini

umount $DIR_INSTALL

if grep -q $PART_ROOT /proc/mounts ; then echo "Unmounting ROOT partiton." umount -f $PART_ROOT fi

echo "Formatting ROOT partition..." mke2fs -F -q -t ext4 -L ROOT_EMMC -m 0 $PART_ROOT e2fsck -n $PART_ROOT echo "done."

echo "Copying ROOTFS."

mount -o rw $PART_ROOT $DIR_INSTALL

cd / echo "Copy BIN" tar -cf - bin | (cd $DIR_INSTALL; tar -xpf -)

echo "Copy BOOT"

mkdir -p $DIR_INSTALL/boot

tar -cf - boot | (cd $DIR_INSTALL; tar -xpf -)

echo "Create DEV" mkdir -p $DIR_INSTALL/dev

tar -cf - dev | (cd $DIR_INSTALL; tar -xpf -)

echo "Copy ETC" tar -cf - etc | (cd $DIR_INSTALL; tar -xpf -) echo "Copy HOME" tar -cf - home | (cd $DIR_INSTALL; tar -xpf -) echo "Copy LIB" tar -cf - lib | (cd $DIR_INSTALL; tar -xpf -) echo "Copy LIB64" tar -cf - lib64 | (cd $DIR_INSTALL; tar -xpf -) echo "Create MEDIA" mkdir -p $DIR_INSTALL/media

tar -cf - media | (cd $DIR_INSTALL; tar -xpf -)

echo "Create MNT" mkdir -p $DIR_INSTALL/mnt

tar -cf - mnt | (cd $DIR_INSTALL; tar -xpf -)

echo "Copy OPT" tar -cf - opt | (cd $DIR_INSTALL; tar -xpf -) echo "Create PROC" mkdir -p $DIR_INSTALL/proc echo "Copy ROOT" tar -cf - root | (cd $DIR_INSTALL; tar -xpf -) echo "Create RUN" mkdir -p $DIR_INSTALL/run echo "Copy SBIN" tar -cf - sbin | (cd $DIR_INSTALL; tar -xpf -) echo "Copy SELINUX" tar -cf - selinux | (cd $DIR_INSTALL; tar -xpf -) echo "Copy SRV" tar -cf - srv | (cd $DIR_INSTALL; tar -xpf -) echo "Create SYS" mkdir -p $DIR_INSTALL/sys echo "Create TMP" mkdir -p $DIR_INSTALL/tmp echo "Copy USR" tar -cf - usr | (cd $DIR_INSTALL; tar -xpf -) echo "Copy VAR" tar -cf - var | (cd $DIR_INSTALL; tar -xpf -) sync

echo "Copy fstab"

rm $DIR_INSTALL/etc/fstab cp -a /root/fstab $DIR_INSTALL/etc/fstab

rm $DIR_INSTALL/root/install*.sh rm $DIR_INSTALL/root/fstab rm $DIR_INSTALL/usr/bin/ddbr

cd / sync

umount $DIR_INSTALL

echo "" echo "Complete copy OS to eMMC " echo ""

gzxief commented 2 years ago

补充,还需要修改/root/phicomm-n1-dev/config/sources/families/arm-64.conf,增加上面的文件名,格式参照arm-64.conf写