merge update to mesonsm1

This commit is contained in:
August 2024-03-15 11:24:16 +08:00
parent ee8bea63ca
commit 30793142af
11 changed files with 245 additions and 63 deletions

View File

@ -20,7 +20,7 @@ function fetch_sources_tools__meson_bpi_fip() {
}
function add_host_dependencies__meson_bpi_hostdeb() {
display_alert "$BOARD" "adding legacy build deps" "info"
display_alert "$BOARD" "adding legacy build host deps" "info"
declare -g EXTRA_BUILD_DEPS="${EXTRA_BUILD_DEPS} lib32stdc++6 zlib1g:i386 libc6-dev-i386 lib32ncurses5-dev"
}
@ -47,16 +47,9 @@ family_tweaks_bsp() {
"bpi-m5"|"bpi-m2s")
cat <<-EOF > "$destination"/etc/X11/xorg.conf
Section "Device"
Identifier "DRM Graphics Acclerated"
## Use modesetting and glamor
Driver "modesetting"
Option "AccelMethod" "glamor" ### "glamor" to enable 3D acceleration, "none" to disable.
Option "DRI" "2"
Option "Dri2Vsync" "true"
Option "TripleBuffer" "True"
## End glamor configuration
Identifier "Meson Fbdev"
Driver "fbdev"
EndSection
Section "Screen"
@ -69,3 +62,53 @@ family_tweaks_bsp() {
;;
esac
}
function custom_apt_repo__bpi_release_apt_list()
{
display_alert "${BOARD}" "Restoring apt sources.list" "info"
# restore apt sources.list
if [[ "${DOWNLOAD_MIRROR}" == "china" && "${BUILD_TYPE}" == "release" ]]; then
DEBIAN_MIRROR='deb.debian.org/debian'
DEBIAN_SECURTY='deb.debian.org/debian-security/'
UBUNTU_MIRROR='ports.ubuntu.com/ubuntu-ports'
ARMBIAN_MIRROR="apt.armbian.com"
case ${RELEASE} in
buster)
cat <<- EOF > "${SDCARD}"/etc/apt/sources.list
deb http://${DEBIAN_MIRROR} ${RELEASE} main contrib non-free
#deb-src http://${DEBIAN_MIRROR} ${RELEASE} main contrib non-free
deb http://${DEBIAN_MIRROR} ${RELEASE}-updates main contrib non-free
#deb-src http://${DEBIAN_MIRROR} ${RELEASE}-updates main contrib non-free
deb http://${DEBIAN_MIRROR} ${RELEASE}-backports main contrib non-free
#deb-src http://${DEBIAN_MIRROR} ${RELEASE}-backports main contrib non-free
deb http://${DEBIAN_SECURTY} ${RELEASE}/updates main contrib non-free
#deb-src http://${DEBIAN_SECURTY} ${RELEASE}/updates main contrib non-free
EOF
;;
focal)
cat <<- EOF > "${SDCARD}"/etc/apt/sources.list
deb http://${UBUNTU_MIRROR} ${RELEASE} main restricted universe multiverse
#deb-src http://${UBUNTU_MIRROR} ${RELEASE} main restricted universe multiverse
deb http://${UBUNTU_MIRROR} ${RELEASE}-security main restricted universe multiverse
#deb-src http://${UBUNTU_MIRROR} ${RELEASE}-security main restricted universe multiverse
deb http://${UBUNTU_MIRROR} ${RELEASE}-updates main restricted universe multiverse
#deb-src http://${UBUNTU_MIRROR} ${RELEASE}-updates main restricted universe multiverse
deb http://${UBUNTU_MIRROR} ${RELEASE}-backports main restricted universe multiverse
#deb-src http://${UBUNTU_MIRROR} ${RELEASE}-backports main restricted universe multiverse
EOF
;;
esac
# no apt mirror for buster and focal
#cat <<- EOF > "${SDCARD}"/etc/apt/sources.list.d/armbian.list
# deb http://${ARMBIAN_MIRROR} $RELEASE main ${RELEASE}-utils ${RELEASE}-desktop
#EOF
fi
}

View File

@ -111,7 +111,9 @@ function post_family_tweaks__mesong12b_bpi_systemd()
display_alert "${BOARD}" "Installing systemd service" "info"
# enable systemd service
[[ -f "${SDCARD}"/lib/systemd/system/hdmi_resolution.service ]] && chroot_sdcard systemctl --no-reload enable hdmi_resolution.service
if [[ "${BUILD_DESKTOP}" == "yes" ]]; then
[[ -f "${SDCARD}"/lib/systemd/system/hdmi_resolution.service ]] && chroot_sdcard systemctl --no-reload enable hdmi_resolution.service
fi
[[ -f "${SDCARD}"/lib/systemd/system/rtk-hciuart.service ]] && chroot_sdcard systemctl --no-reload enable rtk-hciuart.service
[[ -f "${SDCARD}"/lib/systemd/system/camera_isp_3a_server.service ]] && chroot_sdcard systemctl --no-reload enable camera_isp_3a_server.service

View File

@ -53,39 +53,64 @@ ROOTPWD="1234"
MAINTAINER="Dangku" # deb signature
MAINTAINERMAIL="dangku@bananapi.com"
PACKAGE_LIST_FAMILY="edid-decode yad"
PACKAGE_LIST_FAMILY_REMOVE="btrfs-progs update-manager"
function uboot_custom_postprocess()
{
:
}
function post_family_tweaks_bsp__mesonsm1_bpi_desktop() {
display_alert "$BOARD" "Installing board tweaks bsp" "info"
function custom_apt_repo__mesong12b_bpi_apt_list()
{
:
}
function post_family_tweaks__mesonsm1_bpi_desktop() {
display_alert "$BOARD" "Installing customer desktop files" "info"
# customer desktop
if [[ "$BUILD_DESKTOP" = "yes" ]]; then
# install desktop application
mkdir -p "${destination}"/etc/skel
cp -R "${SRC}"/packages/blobs/bpi-meson-sm1/desktop/skel/. "${destination}"/etc/skel
cp -R "${SRC}"/packages/blobs/bpi-meson-sm1/desktop/skel/. "${SDCARD}"/etc/skel
# install application icons
mkdir -p "${destination}"/usr/share/icons/armbian
cp "${SRC}"/packages/blobs/bpi-meson-sm1/desktop/desktop-icons/*.png "${destination}"/usr/share/icons/armbian
cp "${SRC}"/packages/blobs/bpi-meson-sm1/desktop/desktop-icons/*.png "${SDCARD}"/usr/share/icons/armbian
fi
}
function post_family_tweaks__mesonsm1_bpi()
function post_family_tweaks__mesonsm1_bpi_boot_files()
{
display_alert "$BOARD" "Installing board tweaks" "info"
display_alert "$BOARD" "Installing boot files" "info"
# replace bpi bootlogo
if [[ -f "${SDCARD}/boot/boot.bmp" ]]; then
rm ${SDCARD}/boot/boot.bmp
fi
cp ${SRC}/packages/blobs/bpi-meson-sm1/bsp/boot-logo-24.bmp ${SDCARD}/boot/boot-logo.bmp
[[ -f "${SDCARD}"/boot/boot.bmp ]] && rm "${SDCARD}"/boot/boot.bmp
cp "${SRC}"/packages/blobs/bpi-meson-sm1/bsp/boot-logo-24.bmp "${SDCARD}"/boot/boot-logo.bmp
}
function post_family_tweaks__mesonsm1_bpi_rootfs_files()
{
display_alert "$BOARD" "Installing rootfs files" "info"
# copy common board files
run_host_command_logged rsync -a "${SRC}"/packages/bsp/bpi-meson-sm1/* "${SDCARD}"
# xsettings
if [[ ${RELEASE} == "buster" && ${DESKTOP_ENVIRONMENT} == "xfce" ]]; then
cp "${SRC}"/packages/blobs/bpi-meson-g12b/xsettings/${RELEASE}/xsettings.xml "${SDCARD}"/etc/skel/.config/xfce4/xfconf/xfce-perchannel-xml
fi
}
function post_family_tweaks__mesonsm1_bpi_systemd()
{
display_alert "${BOARD}" "Installing systemd service" "info"
# enable systemd service
if [[ "${BUILD_DESKTOP}" == "yes" ]]; then
[[ -f "${SDCARD}"/lib/systemd/system/hdmi_resolution.service ]] && chroot_sdcard systemctl --no-reload enable hdmi_resolution.service
fi
[[ -f "${SDCARD}"/lib/systemd/system/rtk-hciuart.service ]] && chroot_sdcard systemctl --no-reload enable rtk-hciuart.service
# disable systemd service
@ -95,24 +120,33 @@ function post_family_tweaks__mesonsm1_bpi()
[[ -f "${SDCARD}"/lib/systemd/system/apt-daily-upgrade.timer ]] && disable_systemd_service_sdcard apt-daily-upgrade.timer
}
function post_family_tweaks__mesonsm1_bpi_docker()
{
display_alert "${BOARD}" "Installing docker setup script" "info"
# docker install script
install -m 755 "${SRC}"/packages/blobs/bpi-meson-g12b/docker/${RELEASE}/docker_install.sh "${SDCARD}"/usr/local/bin
}
function post_family_config__mesonsm1_bpi_imagedebs(){
display_alert "${BOARD}" "Adding packages to image" "info"
# install packages to image
add_packages_to_image edid-decode yad firefox
#add_packages_to_image xxx
# remove packages from image
# exo-utils
remove_packages btrfs-progs update-manager
if [[ ${RELEASE} == "buster" ]]; then
remove_packages systemd-resolved
fi
}
function pre_customize_image__mesonsm1_bpi()
{
display_alert "$BOARD" "Customizing board image" "info"
display_alert "${BOARD}" "Customizing board image" "info"
# common prebuilt debs
cp -a ${SRC}/packages/extras-buildpkgs/bananapi/bpi-meson-sm1/common/${RELEASE} ${SDCARD}/tmp/tmp-debs
cp -a "${SRC}"/packages/extras-buildpkgs/bananapi/bpi-meson-sm1/common/${RELEASE} "${SDCARD}"/tmp/tmp-debs
chroot $SDCARD /bin/bash -c "dpkg -i --force-bad-version,confdef /tmp/tmp-debs/*.deb"
chroot $SDCARD /bin/bash -c "apt --fix-broken --option Dpkg::Options::="--force-confdef" install -y"
chroot "${SDCARD}" /bin/bash -c "dpkg -i --force-bad-version,confdef /tmp/tmp-debs/*.deb"
chroot "${SDCARD}" /bin/bash -c "apt --fix-broken --option Dpkg::Options::="--force-confdef" install -y"
}

View File

@ -1,12 +1,10 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=HDMI Resolution Setting
Name[zh_CN]=HDMI
Name=Hdmi Resolution
Comment=Configure screen resolution
Comment[zh_CN]=
Exec=/usr/local/bin/hdmi_setup.sh
Icon=/usr/share/icons/armbian/hdmi_resolution.png
Terminal=false
StartupNotify=true
Terminal=true
StartupNotify=false
Categories=GTK;GNOME;Settings;HardwareSettings;

View File

@ -0,0 +1,31 @@
#!/bin/bash
# fix buster docker.service start fail
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
# uninstall old version
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do
sudo apt-get remove $pkg;
done
# apt repository
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# install docker packages
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# verify installation
sudo docker run hello-world

View File

@ -0,0 +1,26 @@
#!/bin/bash
# uninstall old version
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
# apt repository
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# install Docker packages
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# verify installation
sudo docker run hello-world

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<channel name="xsettings" version="1.0">
<property name="Net" type="empty">
<property name="ThemeName" type="string" value="Numix"/>
<property name="IconThemeName" type="string" value="Numix"/>
<property name="DoubleClickTime" type="empty"/>
<property name="DoubleClickDistance" type="empty"/>
<property name="DndDragThreshold" type="empty"/>
<property name="CursorBlink" type="empty"/>
<property name="CursorBlinkTime" type="empty"/>
<property name="SoundThemeName" type="empty"/>
<property name="EnableEventSounds" type="empty"/>
<property name="EnableInputFeedbackSounds" type="empty"/>
</property>
<property name="Xft" type="empty">
<property name="DPI" type="int" value="192"/>
<property name="Antialias" type="int" value="1"/>
<property name="Hinting" type="empty"/>
<property name="HintStyle" type="string" value="hintfull"/>
<property name="RGBA" type="empty"/>
</property>
<property name="Gtk" type="empty">
<property name="CanChangeAccels" type="empty"/>
<property name="ColorPalette" type="empty"/>
<property name="FontName" type="empty"/>
<property name="IconSizes" type="empty"/>
<property name="KeyThemeName" type="empty"/>
<property name="ToolbarStyle" type="empty"/>
<property name="ToolbarIconSize" type="empty"/>
<property name="MenuImages" type="empty"/>
<property name="ButtonImages" type="empty"/>
<property name="MenuBarAccel" type="empty"/>
<property name="CursorThemeName" type="empty"/>
<property name="CursorThemeSize" type="empty"/>
</property>
<property name="Xfce" type="empty">
<property name="LastCustomDPI" type="int" value="192"/>
</property>
</channel>

View File

@ -1,6 +1,11 @@
#!/bin/bash
source /etc/lsb-release
# Only for desktop
if ! sudo which lightdm; then
exit
fi
source /etc/os-release
PIPE="/tmp/hdmi_resolution_pipe"
resolutions=()
@ -11,43 +16,46 @@ if [[ ! -p "${PIPE}" ]]; then
mkfifo "${PIPE}"
fi
chmod 777 ${PIPE}
sudo chmod 777 ${PIPE}
# Established timings supported
if [ "$DISTRIB_CODENAME" == "focal" ]; then
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "E:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $2}' | awk '{print $1}'`)
done < $tempfile
case "${VERSION_CODENAME}" in
"focal"|"buster")
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "E:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $2}' | awk '{print $1}'`)
done < $tempfile
# Standard timings supported
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "S:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $2}' | awk '{print $1}'`)
done < $tempfile
# Standard timings supported
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "S:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $2}' | awk '{print $1}'`)
done < $tempfile
# CEA modes
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "VIC " > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk '{print $1}'`)
done < $tempfile
elif [ "$DISTRIB_CODENAME" == "jammy" ]; then
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "S:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $3}' | awk '{print $1}'`)
done < $tempfile
fi
# CEA modes
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep " VIC" | grep -v HDMI > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk '{print $3}'`)
done < $tempfile
;;
"jammy")
edid-decode < /sys/class/amhdmitx/amhdmitx0/rawedid | grep "S:" > $tempfile
while read line
do
resolutions+=(`echo $line | grep -v i | awk -F ":" '{print $3}' | awk '{print $1}'`)
done < $tempfile
;;
esac
##################
resolutions=(`echo ${resolutions[@]} | tr 'A-Z' 'a-z' | sed s/@/p/g`)
echo ${resolutions[@]} | tr ' ' '\n' > $tempfile
resolutions=(`sort -n -k 1 -k 2 -t x $tempfile | uniq | sed -e s/640x480.*/640x480p60hz/g -e s/720x480.*/480p60hz/g -e s/720x576.*/576p60hz/g -e s/1280x720.*/720p60hz/g -e s/1920x1080.*/1080p60hz/g -e s/3840x2160.*/2160p60hz/g | uniq | tr '\n' ' '`)
resolutions=(`sort -n -k 1 -k 2 -t x $tempfile | uniq | sed -e s/720x480.*/480p60hz/g -e s/720x576.*/576p60hz/g -e s/1280x720.*/720p60hz/g -e s/1920x1080.*/1080p60hz/g -e s/3840x2160.*/2160p60hz/g | uniq | tr '\n' ' '`)
current_resolution=`cat /sys/class/display/mode`
@ -55,7 +63,7 @@ res=$(yad --entry "${resolutions[@]}" \
--entry-text=$current_resolution \
--entry-label 'Resolution' \
--title 'HDMI Resolution Setting' \
--width=300 \
--width=600 \
--height=50 \
--window-icon=/usr/share/icons/armbian/hdmi_resolution.png)
@ -66,7 +74,7 @@ fi
zenity --question --text 'Change the resolution will logout your system, please save your files!' \
--title 'Warning' \
--window-icon /usr/share/icons/armbian/warning.png \
--width=350 \
--width=600 \
--height=50
if [ $? -ne 0 ]; then