mirror of
https://github.com/armbian/build
synced 2025-09-24 19:47:06 +07:00
Add new TVBox aml-c400-plus: Magicsee C400 Plus
This commit is contained in:
51
config/boards/aml-c400-plus.tvb
Normal file
51
config/boards/aml-c400-plus.tvb
Normal file
@@ -0,0 +1,51 @@
|
||||
# Amlogic S912 octa core 3Gb RAM SoC eMMC
|
||||
BOARD_NAME="Magicsee C400 Plus"
|
||||
BOARDFAMILY="meson-gxl"
|
||||
BOARD_MAINTAINER="jomadeto"
|
||||
BOOTSIZE="512"
|
||||
BOOTFS_TYPE="fat"
|
||||
KERNEL_TARGET="current,edge"
|
||||
MODULES_BLACKLIST="simpledrm" # SimpleDRM conflicts with Panfrost
|
||||
KERNEL_TEST_TARGET="current"
|
||||
SERIALCON="ttyAML0"
|
||||
FULL_DESKTOP="yes"
|
||||
ASOUND_STATE="asound.state.mesongx"
|
||||
BOOT_FDT_FILE="amlogic/meson-gxm-c400-plus.dtb"
|
||||
BOOT_LOGO="desktop"
|
||||
SRC_EXTLINUX="no"
|
||||
SRC_CMDLINE='rootflags=data=writeback console=ttyAML0,115200n8 console=tty0'
|
||||
|
||||
function post_family_config__uboot_aml-c400-plus() {
|
||||
# This board type relies on the vendor installed u-boot on emmc to boot
|
||||
display_alert "$BOARD" "Configuring ($BOARD) non-u-boot" "info"
|
||||
unset BOOTSOURCE
|
||||
declare -g BOOTCONFIG='none'
|
||||
}
|
||||
|
||||
function post_family_tweaks_bsp__config_aml-c400-plus_bsp() {
|
||||
: "${destination:?destination is not set}"
|
||||
|
||||
# Important: this board has board-specific bsp-cli files in config/optional/boards/aml-c400-plus/_packages/bsp-cli
|
||||
# that path is hashed by the bsp-cli hashing function automatically
|
||||
display_alert "${BOARD}" "Adjusting perms of bsp-cli files for ${BOARD} in /root" "info"
|
||||
run_host_command_logged chmod -v 744 "${destination}"/root/install-aml.sh
|
||||
run_host_command_logged chmod -v 644 "${destination}"/root/fstab.template
|
||||
|
||||
display_alert "${BOARD}" "Removing armbian-install" "info"
|
||||
run_host_command_logged rm -v "${destination}"/usr/bin/armbian-install
|
||||
|
||||
display_alert "${BOARD}" "Adding bsp-cli preinst logic" "info"
|
||||
# Inline function! So this function is automatically hashed when this hook is hashed.
|
||||
function aml-c400-plus-bsp-cli-preinst() {
|
||||
#update of the board bsp-cli package fails because the filesystem type is
|
||||
#fat and dpkg tries to create a hard link for the existing files as backup
|
||||
#so rm the files instead in a preinst step
|
||||
[ -f /boot/armbianEnv.txt ] && rm /boot/armbianEnv.txt
|
||||
[ -f /boot/aml_autoscript ] && rm /boot/aml_autoscript
|
||||
[ -f /boot/emmc_autoscript ] && rm /boot/emmc_autoscript
|
||||
return 0 # short-circuits above, avoid errors
|
||||
}
|
||||
preinst_functions+=('aml-c400-plus-bsp-cli-preinst')
|
||||
if false; then aml-c400-plus-bsp-cli-preinst; fi # so shellcheck stops complaining the function is unused. sorry
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
extraargs=earlycon rootflags=data=writeback rw no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
|
||||
bootlogo=false
|
||||
verbosity=7
|
||||
console=both
|
||||
fdtfile=amlogic/meson-gxm-c400-plus.dtb
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
#/var/swap none swap sw 0 0
|
||||
#/dev/root / auto noatime,errors=remount-ro 0 1
|
||||
#proc /proc proc defaults 0 0
|
||||
|
||||
/dev/root / ext4 defaults,noatime,errors=remount-ro 0 1
|
||||
tmpfs /tmp tmpfs defaults,nosuid 0 0
|
||||
LABEL=BOOT_EMMC /boot vfat defaults 0 2
|
||||
198
config/optional/boards/aml-c400-plus/_packages/bsp-cli/root/install-aml.sh
Executable file
198
config/optional/boards/aml-c400-plus/_packages/bsp-cli/root/install-aml.sh
Executable file
@@ -0,0 +1,198 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo "Start script create MBR and filesystem"
|
||||
|
||||
hasdrives=$(lsblk | grep -oE '(mmcblk[0-9])' | sort | uniq)
|
||||
if [ "$hasdrives" = "" ]
|
||||
then
|
||||
echo "UNABLE TO FIND ANY EMMC OR SD DRIVES ON THIS SYSTEM!!! "
|
||||
exit 1
|
||||
fi
|
||||
avail=$(lsblk | grep -oE '(mmcblk[0-9]|sda[0-9])' | sort | uniq)
|
||||
if [ "$avail" = "" ]
|
||||
then
|
||||
echo "UNABLE TO FIND ANY DRIVES ON THIS SYSTEM!!!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
#unmount /var/log.hdd so logic below can find the root partition
|
||||
umount /var/log.hdd
|
||||
|
||||
runfrom=$(lsblk | grep /$ | grep -oE '(mmcblk[0-9]|sda[0-9])')
|
||||
if [ "$runfrom" = "" ]
|
||||
then
|
||||
echo " UNABLE TO FIND ROOT OF THE RUNNING SYSTEM!!! "
|
||||
exit 1
|
||||
fi
|
||||
emmc=$(echo $avail | sed "s/$runfrom//" | sed "s/sd[a-z][0-9]//g" | sed "s/ //g")
|
||||
if [ "$emmc" = "" ]
|
||||
then
|
||||
echo " UNABLE TO FIND YOUR EMMC DRIVE OR YOU ALREADY RUN FROM EMMC!!!"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$runfrom" = "$avail" ]
|
||||
then
|
||||
echo " YOU ARE RUNNING ALREADY FROM EMMC!!! "
|
||||
exit 1
|
||||
fi
|
||||
if [ $runfrom = $emmc ]
|
||||
then
|
||||
echo " YOU ARE RUNNING ALREADY FROM EMMC!!! "
|
||||
exit 1
|
||||
fi
|
||||
if [ "$(echo $emmc | grep mmcblk)" = "" ]
|
||||
then
|
||||
echo " YOU DO NOT APPEAR TO HAVE AN EMMC DRIVE!!! "
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DEV_EMMC="/dev/$emmc"
|
||||
|
||||
echo $DEV_EMMC
|
||||
|
||||
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 512M 1024M
|
||||
parted -s "${DEV_EMMC}" mkpart primary ext4 1025M 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 "Copying BOOT..."
|
||||
cp -r /boot/* $DIR_INSTALL && sync
|
||||
echo "done."
|
||||
|
||||
echo -n "Edit init config..."
|
||||
sed -e "s/\(rootdev=UUID\)\([[:graph:]]\)*/rootdev=LABEL=ROOT_EMMC/gi" \
|
||||
-i "$DIR_INSTALL/armbianEnv.txt"
|
||||
echo "done."
|
||||
|
||||
rm $DIR_INSTALL/s9*
|
||||
rm $DIR_INSTALL/aml*
|
||||
|
||||
if [ -f /boot/u-boot.ext ] ; then
|
||||
mv -f $DIR_INSTALL/u-boot.ext $DIR_INSTALL/u-boot.emmc
|
||||
|
||||
sed -e "s/u-boot.ext/u-boot.emmc/g" \
|
||||
-i "$DIR_INSTALL/boot.ini"
|
||||
echo "done."
|
||||
|
||||
sync
|
||||
fi
|
||||
|
||||
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.template $DIR_INSTALL/etc/fstab
|
||||
|
||||
rm $DIR_INSTALL/root/install*.sh
|
||||
rm $DIR_INSTALL/root/fstab.template
|
||||
rm $DIR_INSTALL/usr/bin/ddbr
|
||||
|
||||
|
||||
cd /
|
||||
sync
|
||||
|
||||
umount $DIR_INSTALL
|
||||
|
||||
echo "*******************************************"
|
||||
echo "Complete copy OS to eMMC "
|
||||
echo "*******************************************"
|
||||
@@ -268,7 +268,7 @@ family_tweaks_bsp() {
|
||||
|
||||
mkdir -p "$destination"/etc/X11/xorg.conf.d
|
||||
case "${BOARD}" in
|
||||
"odroidc2" | "nanopik2-s905" | "lepotato" | "lafrite" | "khadas-vim1" | "khadas-vim2" | "aml-s9xx-box")
|
||||
"odroidc2" | "nanopik2-s905" | "lepotato" | "lafrite" | "khadas-vim1" | "khadas-vim2" | "aml-c400-plus" | "aml-s9xx-box")
|
||||
cat <<- EOF > "$destination"/etc/X11/xorg.conf.d/02-driver.conf
|
||||
Section "OutputClass"
|
||||
Identifier "Amlogic"
|
||||
|
||||
@@ -38,6 +38,10 @@ uboot_custom_postprocess() {
|
||||
uboot_gxl_postprocess $SRC/cache/sources/odroidc2-blobs/ gxl
|
||||
fi
|
||||
|
||||
if [[ $BOARD == aml-c400-plus ]]; then
|
||||
uboot_gxl_postprocess $SRC/cache/sources/odroidc2-blobs/ gxl
|
||||
fi
|
||||
|
||||
if [[ $BOARD == aml-s9xx-box ]]; then
|
||||
uboot_gxl_postprocess $SRC/cache/sources/odroidc2-blobs/ gxl
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user