diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..d828422 --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,69 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the workflow will run +on: + [push] + + # Allows you to run this workflow manually from the Actions tab + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Runs a single command using the runners shell + - name: Build + run: sudo ./build.sh + + # Runs a set of commands using the runners shell + - name: print sha256sum + run: cat output/sha256 + + - name: Generate Tag + id: tag + run: | + VER=$(egrep ^KERNEL_VERSION build.sh|cut -d= -f2) + echo Version is $VER + echo "::set-output name=tag::${VER}" + + - name: Upload iso artifact part 1 + uses: actions/upload-artifact@v2 + with: + name: mbp-ubuntu-${{ steps.tag.outputs.tag }}.z01 + path: ${{ github.workspace }}/output/livecd-${{ steps.tag.outputs.tag }}-mbp.z01 + + - name: Upload iso artifact part 2 + uses: actions/upload-artifact@v2 + with: + name: mbp-ubuntu-${{ steps.tag.outputs.tag }}.z02 + path: ${{ github.workspace }}/output/livecd-${{ steps.tag.outputs.tag }}-mbp.z02 + + - name: Upload iso artifact part 3 + uses: actions/upload-artifact@v2 + with: + name: mbp-ubuntu-${{ steps.tag.outputs.tag }}.z03 + path: ${{ github.workspace }}/output/livecd-${{ steps.tag.outputs.tag }}-mbp.z03 + + - name: Upload iso artifact final part + if: always() + uses: actions/upload-artifact@v2 + with: + name: mbp-ubuntu-${{ steps.tag.outputs.tag }}.zip + path: ${{ github.workspace }}/output/livecd-${{ steps.tag.outputs.tag }}-mbp.zip + + - name: Instructions for putting it back together + run: | + echo Download all the artifacts, and put them in a folder without other files. Then run: + echo 'unzip "*.z??.zip"' + echo 'cat livecd-${{ steps.tag.outputs.tag }}-mbp.z?? > cd.zip' + echo unzip cd.zip + diff --git a/build.sh b/build.sh index 7cebfd6..708b5cc 100755 --- a/build.sh +++ b/build.sh @@ -5,7 +5,7 @@ ROOT_PATH=$(pwd) WORKING_PATH=/root/work CHROOT_PATH="${WORKING_PATH}/chroot" IMAGE_PATH="${WORKING_PATH}/image" -KERNEL_VERSION=5.9.6 +KERNEL_VERSION=5.10.47 if [ -d "$WORKING_PATH" ]; then rm -rf "$WORKING_PATH" @@ -33,7 +33,7 @@ apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::=" syslinux echo >&2 "===]> Info: Start loop... " -for ALTERNATIVE in mbp mbp-alt +for ALTERNATIVE in mbp do echo >&2 "===]> Info: Start building ${ALTERNATIVE}... " diff --git a/files/chroot_build.sh b/files/chroot_build.sh index 4b3b5c0..7cae309 100755 --- a/files/chroot_build.sh +++ b/files/chroot_build.sh @@ -63,11 +63,16 @@ apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::=" linux-generic \ linux-headers-generic \ grub-efi-amd64-signed \ - "linux-image-${KERNEL_VERSION}" \ - "linux-headers-${KERNEL_VERSION}" \ intel-microcode \ thermald +# This is not ideal, but it should work until the apt repo gets updated. + +curl -L https://github.com/marcosfad/mbp-ubuntu-kernel/releases/download/v5.10.47/linux-headers-5.10.47-mbp_5.10.47-1_amd64.deb > /tmp/headers.deb +curl -L https://github.com/marcosfad/mbp-ubuntu-kernel/releases/download/v5.10.47/linux-image-5.10.47-mbp_5.10.47-1_amd64.deb > /tmp/image.deb +file /tmp/* +apt install /tmp/headers.deb /tmp/image.deb + echo >&2 "===]> Info: Install window manager... " apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" \ @@ -93,24 +98,25 @@ apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::=" nano \ make \ gcc \ - dkms + dkms \ + iwd echo >&2 "===]> Info: Change initramfs format (for grub)... " sed -i "s/COMPRESS=lz4/COMPRESS=gzip/g" "/etc/initramfs-tools/initramfs.conf" echo >&2 "===]> Info: Add drivers... " -APPLE_BCE_DRIVER_GIT_URL=https://github.com/marcosfad/mbp2018-bridge-drv.git +APPLE_BCE_DRIVER_GIT_URL=https://github.com/t2linux/apple-bce-drv.git APPLE_BCE_DRIVER_BRANCH_NAME=aur -APPLE_BCE_DRIVER_COMMIT_HASH=85347e71dd79e0be486a79af36862c96027c0836 +APPLE_BCE_DRIVER_COMMIT_HASH=f93c6566f98b3c95677de8010f7445fa19f75091 APPLE_BCE_DRIVER_MODULE_NAME=apple-bce -APPLE_BCE_DRIVER_MODULE_VERSION=0.1 +APPLE_BCE_DRIVER_MODULE_VERSION=0.2 -APPLE_IB_DRIVER_GIT_URL=https://github.com/roadrunner2/macbook12-spi-driver.git +APPLE_IB_DRIVER_GIT_URL=https://github.com/t2linux/apple-ib-drv APPLE_IB_DRIVER_BRANCH_NAME=mbp15 -APPLE_IB_DRIVER_COMMIT_HASH=90cea3e8e32db60147df8d39836bd1d2a5161871 +APPLE_IB_DRIVER_COMMIT_HASH=fc9aefa5a564e6f2f2bb0326bffb0cef0446dc05 APPLE_IB_DRIVER_MODULE_NAME=apple-ibridge -APPLE_IB_DRIVER_MODULE_VERSION=0.1 +APPLE_IB_DRIVER_MODULE_VERSION=0.2 # thunderbolt is working for me. #printf '\nblacklist thunderbolt' >>/etc/modprobe.d/blacklist.conf @@ -118,6 +124,18 @@ APPLE_IB_DRIVER_MODULE_VERSION=0.1 git clone --single-branch --branch ${APPLE_BCE_DRIVER_BRANCH_NAME} ${APPLE_BCE_DRIVER_GIT_URL} \ /usr/src/"${APPLE_BCE_DRIVER_MODULE_NAME}-${APPLE_BCE_DRIVER_MODULE_VERSION}" git -C /usr/src/"${APPLE_BCE_DRIVER_MODULE_NAME}-${APPLE_BCE_DRIVER_MODULE_VERSION}" checkout "${APPLE_BCE_DRIVER_COMMIT_HASH}" + +cat << EOF > /usr/src/${APPLE_BCE_DRIVER_MODULE_NAME}-${APPLE_BCE_DRIVER_MODULE_VERSION}/dkms.conf +PACKAGE_NAME=apple-bce +PACKAGE_VERSION=0.1 +CLEAN="make clean" +MAKE="make" +BUILT_MODULE_NAME[0]="apple-bce" +DEST_MODULE_LOCATION[0]="/updates" +AUTOINSTALL="yes" +REMAKE_INITRD="yes" +EOF + dkms install -m "${APPLE_BCE_DRIVER_MODULE_NAME}" -v "${APPLE_BCE_DRIVER_MODULE_VERSION}" -k "${KERNEL_VERSION}" printf '\n### apple-bce start ###\nhid-apple\nbcm5974\nsnd-seq\napple-bce\n### apple-bce end ###' >>/etc/modules-load.d/apple-bce.conf printf '\n### apple-bce start ###\nhid-apple\nsnd-seq\napple-bce\n### apple-bce end ###' >>/etc/initramfs-tools/modules @@ -178,9 +196,10 @@ dns=dnsmasq managed=false EOF dpkg-reconfigure network-manager -#echo >&2 "===]> Info: Configure Network Manager to use iwd... " -#mkdir -p /etc/NetworkManager/conf.d -#printf '[device]\nwifi.backend=iwd' > /etc/NetworkManager/conf.d/wifi_backend.conf + +echo >&2 "===]> Info: Configure Network Manager to use iwd... " +mkdir -p /etc/NetworkManager/conf.d +printf '[device]\nwifi.backend=iwd\n' > /etc/NetworkManager/conf.d/wifi_backend.conf #systemctl enable iwd.service echo >&2 "===]> Info: Cleanup the chroot environment... "