mirror of
https://github.com/vanilla-wiiu/vanilla.git
synced 2026-10-28 09:43:51 +00:00
ci/docker: add nintendo switch buildroot image
This commit is contained in:
1 parent
9c44c4e4a8
commit
49a05a2be3
35 files changed
+28319
-50
No files matched your search
@@ -33,6 +33,9 @@ jobs:
|
||||
- os: raspberrypizero2w
|
||||
arch: aarch64
|
||||
artifact: vanilla-raspberrypizero2w-image.zip
|
||||
- os: nintendoswitch
|
||||
arch: aarch64
|
||||
artifact: vanilla-nintendoswitch-image.zip
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -64,8 +67,8 @@ jobs:
|
||||
run: |
|
||||
tar czf ${{ matrix.platform.artifact }} -C "${{ github.workspace }}/build" .
|
||||
|
||||
- name: Archive (Windows/macOS/Raspberry Pi)
|
||||
if: ${{ matrix.platform.os == 'windows' || matrix.platform.os == 'macos' || matrix.platform.os == 'raspberrypi0w' || matrix.platform.os == 'raspberrypizero2w' }}
|
||||
- name: Archive (Windows/macOS/Raspberry Pi/Nintendo Switch)
|
||||
if: ${{ matrix.platform.os == 'windows' || matrix.platform.os == 'macos' || matrix.platform.os == 'raspberrypi0w' || matrix.platform.os == 'raspberrypizero2w' || matrix.platform.os == 'nintendoswitch' }}
|
||||
run: |
|
||||
cd build
|
||||
zip -r ../${{ matrix.platform.artifact }} .
|
||||
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
TARGET_DIR="$1"
|
||||
|
||||
grep -q '/usr/bin/vanilla-wrapper' "$TARGET_DIR/etc/inittab" || \
|
||||
sed -i '/^::sysinit:\/etc\/init\.d\/rcS/a ::once:/usr/bin/vanilla-wrapper' \
|
||||
"$TARGET_DIR/etc/inittab"
|
||||
|
||||
grep -q '/mnt' "$TARGET_DIR/etc/fstab" || \
|
||||
echo "/dev/mmcblk0p1 /mnt vfat defaults 0 0" >> "$TARGET_DIR/etc/fstab"
|
||||
@@ -0,0 +1 @@
|
||||
/mnt/switchroot/vanilla/data
|
||||
@@ -0,0 +1,4 @@
|
||||
Section "Monitor"
|
||||
Identifier "DFP-0"
|
||||
Option "Rotate" "left"
|
||||
EndSection
|
||||
@@ -0,0 +1,18 @@
|
||||
pcm.!default {
|
||||
type asym
|
||||
playback.pcm {
|
||||
type hw
|
||||
card tegrasndt210ref
|
||||
device 0
|
||||
}
|
||||
capture.pcm {
|
||||
type hw
|
||||
card tegrasndt210ref
|
||||
device 1 # <-- replace with the DMIC subdevice you found
|
||||
}
|
||||
}
|
||||
|
||||
ctl.!default {
|
||||
type hw
|
||||
card tegrasndt210ref
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
case "$1" in
|
||||
start)
|
||||
# Wait for the device, with a timeout
|
||||
for i in $(seq 1 50); do
|
||||
[ -b /dev/mmcblk0p1 ] && break
|
||||
usleep 100000
|
||||
done
|
||||
mount /dev/mmcblk0p1 2>/dev/null || mount -a
|
||||
;;
|
||||
esac
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Restore ALSA mixer state at boot
|
||||
#
|
||||
|
||||
ALSACTL=/usr/sbin/alsactl
|
||||
ASOUND_STATE=/var/lib/alsa/asound.state
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
printf "Restoring ALSA state: "
|
||||
$ALSACTL -f $ASOUND_STATE restore && echo "OK" || echo "FAIL"
|
||||
;;
|
||||
stop)
|
||||
# intentionally NOT storing on shutdown — see note below
|
||||
;;
|
||||
restart|reload)
|
||||
"$0" start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
# Run joycond to provide virtual combined joycon device
|
||||
/usr/bin/joycond &
|
||||
;;
|
||||
stop)
|
||||
killall joycond 2>/dev/null
|
||||
;;
|
||||
restart)
|
||||
"$0" stop
|
||||
"$0" start
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Listen for power button presses, in which case quit Vanilla (which should in turn reboot the Switch)
|
||||
|
||||
DEV=/dev/input/event0
|
||||
APP=vanilla
|
||||
|
||||
evtest "$DEV" 2>/dev/null | while read -r line; do
|
||||
case "$line" in
|
||||
*KEY_SLEEP*,\ value\ 1*)
|
||||
pid="$(pidof "$APP" | awk '{print $1}')"
|
||||
[ -n "$pid" ] && kill -TERM "$pid"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Listen for volume button presses, in which case increase/decrease volume in ALSA
|
||||
|
||||
DEV=/dev/input/event5
|
||||
|
||||
evtest "$DEV" 2>/dev/null | while read -r line; do
|
||||
case "$line" in
|
||||
*KEY_VOLUMEDOWN*,\ value\ 1*)
|
||||
amixer sset 'x Speaker' 5%- >/dev/null
|
||||
;;
|
||||
*KEY_VOLUMEUP*,\ value\ 1*)
|
||||
amixer sset 'x Speaker' 5%+ unmute >/dev/null
|
||||
;;
|
||||
esac
|
||||
done
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Buildroot doesn't allow us to have a ld.conf.so.d so force the LD_LIBRARY_PATH here
|
||||
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/aarch64-linux-gnu/tegra:/usr/lib/aarch64-linux-gnu/tegra-egl"
|
||||
export DISPLAY=:0
|
||||
export SDL_VIDEODRIVER=x11
|
||||
|
||||
# Listen for power button presses
|
||||
/usr/bin/vanilla-nx-power-btn &
|
||||
POWER_BTN_WATCHER_PID=$!
|
||||
/usr/bin/vanilla-nx-volume-btn &
|
||||
VOLUME_BTN_WATCHER_PID=$!
|
||||
|
||||
# Ensure watcher is closed
|
||||
cleanup() {
|
||||
kill "$POWER_BTN_WATCHER_PID" 2>/dev/null
|
||||
kill "$VOLUME_BTN_WATCHER_PID" 2>/dev/null
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
# Start X
|
||||
X "$DISPLAY" -nolisten tcp vt1 &
|
||||
X_PID=$!
|
||||
|
||||
# Wait until X is responsive
|
||||
for i in 1 2 3 4 5 6 7 8 9 10; do
|
||||
xset q >/dev/null 2>&1 && break
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Run Vanilla in foreground
|
||||
/usr/bin/vanilla > /vanilla.log 2>&1
|
||||
APP_RC=$?
|
||||
|
||||
# Clean up X
|
||||
kill "$X_PID" 2>/dev/null
|
||||
wait "$X_PID" 2>/dev/null
|
||||
|
||||
# Reboot when app exits
|
||||
reboot -f
|
||||
|
||||
# Fallback if reboot fails
|
||||
exit "$APP_RC"
|
||||
@@ -0,0 +1,191 @@
|
||||
# Use case Configuration for Nintendo Switch
|
||||
|
||||
SectionVerb {
|
||||
|
||||
EnableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
|
||||
cset "name='x OUT MIXL DAC L1 Switch' off"
|
||||
cset "name='x OUT MIXR DAC R1 Switch' off"
|
||||
cset "name='x SPK MIXL DAC L1 Switch' off"
|
||||
cset "name='x SPK MIXR DAC R1 Switch' off"
|
||||
cset "name='ADMAIF1 Mux' I2S1"
|
||||
cset "name='I2S1 Mux' ADMAIF1"
|
||||
cset "name='I2S1 Sample Rate' 48000"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
cset "name='x OUT MIXL DAC L1 Switch' off"
|
||||
cset "name='x OUT MIXR DAC R1 Switch' off"
|
||||
cset "name='x SPK MIXL DAC L1 Switch' off"
|
||||
cset "name='x SPK MIXR DAC R1 Switch' off"
|
||||
cset "name='I2S1 Sample Rate' 0"
|
||||
]
|
||||
|
||||
# ALSA PCM
|
||||
Value {
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."Headphones" {
|
||||
Comment "Headphones playback"
|
||||
|
||||
ConflictingDevice [
|
||||
"Speaker"
|
||||
]
|
||||
|
||||
EnableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
|
||||
cset "name='x HPO MIX HPVOL Switch' on"
|
||||
cset "name='x HP L Playback Switch' on"
|
||||
cset "name='x HP R Playback Switch' on"
|
||||
cset "name='x OUT MIXL DAC L1 Switch' on"
|
||||
cset "name='x OUT MIXR DAC R1 Switch' on"
|
||||
cset "name='x Stereo DAC MIXL DAC L1 Switch' on"
|
||||
cset "name='x Stereo DAC MIXR DAC R1 Switch' on"
|
||||
cset "name='x DAC1 HP Playback Volume' 170,170"
|
||||
cset "name='x HP Playback Volume' 31,31"
|
||||
cset "name='x HP Channel Switch' on,on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
|
||||
cset "name='x HP Playback Volume' 0,0"
|
||||
cset "name='x HP Channel Switch' off,off"
|
||||
cset "name='x DAC1 HP Playback Volume' 0,0"
|
||||
cset "name='x OUT MIXL DAC L1 Switch' off"
|
||||
cset "name='x OUT MIXR DAC R1 Switch' off"
|
||||
cset "name='x HPO MIX HPVOL Switch' off"
|
||||
cset "name='x HP L Playback Switch' off"
|
||||
cset "name='x HP R Playback Switch' off"
|
||||
cset "name='x Stereo DAC MIXL DAC L1 Switch' off"
|
||||
cset "name='x Stereo DAC MIXR DAC R1 Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackPCM "hw:tegrasndt210ref"
|
||||
|
||||
PlaybackChannels "2"
|
||||
PlaybackRate "48000"
|
||||
PlaybackVolume "x DAC1 HP Playback Volume"
|
||||
PlaybackSwitch "x HP Channel Switch"
|
||||
JackControl "x Headphone Jack"
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."Speaker" {
|
||||
Comment "Speaker playback"
|
||||
|
||||
ConflictingDevice [
|
||||
"Headphones"
|
||||
]
|
||||
|
||||
EnableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
|
||||
cset "name='x SPK MIXL DAC L1 Switch' on"
|
||||
cset "name='x SPK MIXR DAC R1 Switch' on"
|
||||
cset "name='x Speaker Channel Switch' on,on"
|
||||
cset "name='x SPOL MIX SPKVOL L Switch' on"
|
||||
cset "name='x SPOR MIX SPKVOL R Switch' on"
|
||||
cset "name='x Stereo DAC MIXL DAC L1 Switch' on"
|
||||
cset "name='x Stereo DAC MIXR DAC R1 Switch' on"
|
||||
cset "name='x DAC1 Speaker Playback Volume' 148,148"
|
||||
cset "name='x Speaker Playback Volume' 35,35"
|
||||
cset "name='x Speaker L Playback Switch' on"
|
||||
cset "name='x Speaker R Playback Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
|
||||
cset "name='x Speaker L Playback Switch' off"
|
||||
cset "name='x Speaker R Playback Switch' off"
|
||||
cset "name='x Speaker Channel Switch' off,off"
|
||||
cset "name='x Speaker Playback Volume' 35,35"
|
||||
cset "name='x DAC1 Speaker Playback Volume' 0,0"
|
||||
cset "name='x SPK MIXL DAC L1 Switch' off"
|
||||
cset "name='x SPK MIXR DAC R1 Switch' off"
|
||||
cset "name='x SPOL MIX SPKVOL L Switch' off"
|
||||
cset "name='x SPOR MIX SPKVOL R Switch' off"
|
||||
cset "name='x Stereo DAC MIXL DAC L1 Switch' off"
|
||||
cset "name='x Stereo DAC MIXR DAC R1 Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackPCM "hw:tegrasndt210ref"
|
||||
|
||||
PlaybackChannels "2"
|
||||
PlaybackRate "48000"
|
||||
PlaybackVolume "x DAC1 Speaker Playback Volume"
|
||||
PlaybackSwitch "x Speaker Channel Switch"
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."HeadsetMic" {
|
||||
Comment "Headset Microphone"
|
||||
|
||||
ConflictingDevice [
|
||||
"DummyMic"
|
||||
]
|
||||
|
||||
EnableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
|
||||
cset "name='x IN1 Boost' 5"
|
||||
cset "name='x Stereo ADC MIXL ADC1 Switch' on"
|
||||
cset "name='x ADC IF1 Data Switch' 2"
|
||||
cset "name='x ADC MIC Capture Volume' 47,0"
|
||||
cset "name='x ADC Capture Switch' on,off"
|
||||
cset "name='x RECMIXL BST1 Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
|
||||
cset "name='x RECMIXL BST1 Switch' off"
|
||||
cset "name='x Stereo ADC MIXL ADC1 Switch' off"
|
||||
cset "name='x ADC MIC Capture Volume' 0,0"
|
||||
cset "name='x ADC Capture Switch' off"
|
||||
cset "name='x ADC IF1 Data Switch' 0"
|
||||
]
|
||||
|
||||
Value {
|
||||
CapturePCM "hw:tegrasndt210ref"
|
||||
|
||||
CapturePriority "100"
|
||||
CaptureChannels "2"
|
||||
CaptureRate "48000"
|
||||
CaptureVolume "x ADC MIC Capture Volume"
|
||||
CaptureSwitch "x ADC Capture Switch"
|
||||
JackControl "x Mic Jack"
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."DummyMic" {
|
||||
Comment "Dummy Microphone"
|
||||
|
||||
ConflictingDevice [
|
||||
"HeadsetMic"
|
||||
]
|
||||
|
||||
EnableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
]
|
||||
|
||||
Value {
|
||||
CapturePCM "hw:tegrasndt210ref"
|
||||
|
||||
CapturePriority "100"
|
||||
CaptureChannels "2"
|
||||
CaptureRate "48000"
|
||||
}
|
||||
}
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
SectionUseCase."HiFi" {
|
||||
File "HiFi"
|
||||
Comment "Play HiFi quality Music"
|
||||
}
|
||||
|
||||
SectionDefaults [
|
||||
cdev "hw:tegrasndt210ref"
|
||||
]
|
||||
@@ -0,0 +1,173 @@
|
||||
# Use case Configuration for Nintendo Switch
|
||||
|
||||
SectionVerb {
|
||||
|
||||
EnableSequence [
|
||||
cset "name='x OUT MIXL DAC L1 Switch' off"
|
||||
cset "name='x OUT MIXR DAC R1 Switch' off"
|
||||
cset "name='x SPK MIXL DAC L1 Switch' off"
|
||||
cset "name='x SPK MIXR DAC R1 Switch' off"
|
||||
cset "name='ADMAIF1 Mux' I2S1"
|
||||
cset "name='I2S1 Mux' ADMAIF1"
|
||||
cset "name='I2S1 Sample Rate' 48000"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='x OUT MIXL DAC L1 Switch' off"
|
||||
cset "name='x OUT MIXR DAC R1 Switch' off"
|
||||
cset "name='x SPK MIXL DAC L1 Switch' off"
|
||||
cset "name='x SPK MIXR DAC R1 Switch' off"
|
||||
cset "name='I2S1 Sample Rate' 0"
|
||||
]
|
||||
|
||||
# ALSA PCM
|
||||
Value {
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."Headphones" {
|
||||
Comment "Headphones playback"
|
||||
|
||||
ConflictingDevice [
|
||||
"Speaker"
|
||||
]
|
||||
|
||||
EnableSequence [
|
||||
cset "name='x HPO MIX HPVOL Switch' on"
|
||||
cset "name='x HP L Playback Switch' on"
|
||||
cset "name='x HP R Playback Switch' on"
|
||||
cset "name='x OUT MIXL DAC L1 Switch' on"
|
||||
cset "name='x OUT MIXR DAC R1 Switch' on"
|
||||
cset "name='x Stereo DAC MIXL DAC L1 Switch' on"
|
||||
cset "name='x Stereo DAC MIXR DAC R1 Switch' on"
|
||||
cset "name='x DAC1 HP Playback Volume' 170,170"
|
||||
cset "name='x HP Playback Volume' 31,31"
|
||||
cset "name='x HP Channel Switch' on,on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='x HP Playback Volume' 0,0"
|
||||
cset "name='x HP Channel Switch' off,off"
|
||||
cset "name='x DAC1 HP Playback Volume' 0,0"
|
||||
cset "name='x OUT MIXL DAC L1 Switch' off"
|
||||
cset "name='x OUT MIXR DAC R1 Switch' off"
|
||||
cset "name='x HPO MIX HPVOL Switch' off"
|
||||
cset "name='x HP L Playback Switch' off"
|
||||
cset "name='x HP R Playback Switch' off"
|
||||
cset "name='x Stereo DAC MIXL DAC L1 Switch' off"
|
||||
cset "name='x Stereo DAC MIXR DAC R1 Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackPCM "hw:${CardId}"
|
||||
|
||||
PlaybackChannels "2"
|
||||
PlaybackRate "48000"
|
||||
PlaybackVolume "x DAC1 HP Playback Volume"
|
||||
PlaybackSwitch "x HP Channel Switch"
|
||||
JackControl "x Headphone Jack"
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."Speaker" {
|
||||
Comment "Speaker playback"
|
||||
|
||||
ConflictingDevice [
|
||||
"Headphones"
|
||||
]
|
||||
|
||||
EnableSequence [
|
||||
cset "name='x SPK MIXL DAC L1 Switch' on"
|
||||
cset "name='x SPK MIXR DAC R1 Switch' on"
|
||||
cset "name='x Speaker Channel Switch' on,on"
|
||||
cset "name='x SPOL MIX SPKVOL L Switch' on"
|
||||
cset "name='x SPOR MIX SPKVOL R Switch' on"
|
||||
cset "name='x Stereo DAC MIXL DAC L1 Switch' on"
|
||||
cset "name='x Stereo DAC MIXR DAC R1 Switch' on"
|
||||
cset "name='x DAC1 Speaker Playback Volume' 148,148"
|
||||
cset "name='x Speaker Playback Volume' 35,35"
|
||||
cset "name='x Speaker L Playback Switch' on"
|
||||
cset "name='x Speaker R Playback Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='x Speaker L Playback Switch' off"
|
||||
cset "name='x Speaker R Playback Switch' off"
|
||||
cset "name='x Speaker Channel Switch' off,off"
|
||||
cset "name='x Speaker Playback Volume' 35,35"
|
||||
cset "name='x DAC1 Speaker Playback Volume' 0,0"
|
||||
cset "name='x SPK MIXL DAC L1 Switch' off"
|
||||
cset "name='x SPK MIXR DAC R1 Switch' off"
|
||||
cset "name='x SPOL MIX SPKVOL L Switch' off"
|
||||
cset "name='x SPOR MIX SPKVOL R Switch' off"
|
||||
cset "name='x Stereo DAC MIXL DAC L1 Switch' off"
|
||||
cset "name='x Stereo DAC MIXR DAC R1 Switch' off"
|
||||
]
|
||||
|
||||
Value {
|
||||
PlaybackPCM "hw:${CardId}"
|
||||
|
||||
PlaybackChannels "2"
|
||||
PlaybackRate "48000"
|
||||
PlaybackVolume "x DAC1 Speaker Playback Volume"
|
||||
PlaybackSwitch "x Speaker Channel Switch"
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."HeadsetMic" {
|
||||
Comment "Headset Microphone"
|
||||
|
||||
ConflictingDevice [
|
||||
"DummyMic"
|
||||
]
|
||||
|
||||
EnableSequence [
|
||||
cset "name='x IN1 Boost' 5"
|
||||
cset "name='x Stereo ADC MIXL ADC1 Switch' on"
|
||||
cset "name='x ADC IF1 Data Switch' 2"
|
||||
cset "name='x ADC MIC Capture Volume' 47,0"
|
||||
cset "name='x ADC Capture Switch' on,off"
|
||||
cset "name='x RECMIXL BST1 Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='x RECMIXL BST1 Switch' off"
|
||||
cset "name='x Stereo ADC MIXL ADC1 Switch' off"
|
||||
cset "name='x ADC MIC Capture Volume' 0,0"
|
||||
cset "name='x ADC Capture Switch' off"
|
||||
cset "name='x ADC IF1 Data Switch' 0"
|
||||
]
|
||||
|
||||
Value {
|
||||
CapturePCM "hw:${CardId}"
|
||||
|
||||
CapturePriority "100"
|
||||
CaptureChannels "2"
|
||||
CaptureRate "48000"
|
||||
CaptureVolume "x ADC MIC Capture Volume"
|
||||
CaptureSwitch "x ADC Capture Switch"
|
||||
JackControl "x Mic Jack"
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."DummyMic" {
|
||||
Comment "Dummy Microphone"
|
||||
|
||||
ConflictingDevice [
|
||||
"HeadsetMic"
|
||||
]
|
||||
|
||||
EnableSequence [
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
]
|
||||
|
||||
Value {
|
||||
CapturePCM "hw:${CardId}"
|
||||
|
||||
CapturePriority "100"
|
||||
CaptureChannels "2"
|
||||
CaptureRate "48000"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
Syntax 2
|
||||
|
||||
SectionUseCase."HiFi" {
|
||||
File "/tegra-snd-t210r/HiFi.conf"
|
||||
Comment "Play HiFi quality Music"
|
||||
}
|
||||
File diff suppressed because it is too large.
Load diff
@@ -2,18 +2,26 @@ BR2_aarch64=y
|
||||
BR2_cortex_a57=y
|
||||
BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_4_9=y
|
||||
BR2_TOOLCHAIN_BUILDROOT_CXX=y
|
||||
BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y
|
||||
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
|
||||
BR2_TARGET_GENERIC_ROOT_PASSWD="root"
|
||||
# BR2_TARGET_GENERIC_GETTY is not set
|
||||
# BR2_TARGET_GENERIC_REMOUNT_ROOTFS_RW is not set
|
||||
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_VANILLA_PATH)/rootfs $(BR2_EXTERNAL_VANILLA_PATH)/board/nx/rootfs/"
|
||||
BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_VANILLA_PATH)/board/nx/rootfs/"
|
||||
BR2_ROOTFS_POST_BUILD_SCRIPT="$(BR2_EXTERNAL_VANILLA_PATH)/board/nx/post_build.sh"
|
||||
BR2_LINUX_KERNEL=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_GIT=y
|
||||
BR2_LINUX_KERNEL_CUSTOM_REPO_URL="https://github.com/CTCaer/switch-l4t-kernel-4.9.git"
|
||||
BR2_LINUX_KERNEL_CUSTOM_REPO_VERSION="linux-5.1.2"
|
||||
BR2_LINUX_KERNEL_DEFCONFIG="tegra_linux"
|
||||
BR2_PACKAGE_ALSA_UTILS=y
|
||||
# BR2_PACKAGE_ALSA_UTILS_ALSAMIXER is not set
|
||||
BR2_PACKAGE_ALSA_UTILS_AMIXER=y
|
||||
BR2_PACKAGE_FFMPEG=y
|
||||
# BR2_PACKAGE_FFMPEG_FFMPEG is not set
|
||||
BR2_PACKAGE_FFMPEG_SWSCALE=y
|
||||
BR2_PACKAGE_FFMPEG_ENCODERS="png"
|
||||
BR2_PACKAGE_FFMPEG_DECODERS="h264"
|
||||
BR2_PACKAGE_FFMPEG_MUXERS="image2 mp4"
|
||||
BR2_PACKAGE_FFMPEG_DEMUXERS=""
|
||||
BR2_PACKAGE_FFMPEG_PARSERS=""
|
||||
@@ -22,18 +30,25 @@ BR2_PACKAGE_FFMPEG_PROTOCOLS=""
|
||||
BR2_PACKAGE_FFMPEG_FILTERS=""
|
||||
# BR2_PACKAGE_FFMPEG_INDEVS is not set
|
||||
# BR2_PACKAGE_FFMPEG_OUTDEVS is not set
|
||||
BR2_PACKAGE_KMSCUBE=y
|
||||
BR2_PACKAGE_MESA3D=y
|
||||
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA=y
|
||||
BR2_PACKAGE_MESA3D_OPENGL_EGL=y
|
||||
BR2_PACKAGE_MESA3D_OPENGL_ES=y
|
||||
BR2_PACKAGE_LIBGLVND=y
|
||||
BR2_PACKAGE_SDL2=y
|
||||
BR2_PACKAGE_SDL2_KMSDRM=y
|
||||
BR2_PACKAGE_SDL2_X11=y
|
||||
BR2_PACKAGE_SDL2_OPENGLES=y
|
||||
BR2_PACKAGE_SDL2_IMAGE=y
|
||||
BR2_PACKAGE_SDL2_TTF=y
|
||||
BR2_PACKAGE_ALSA_LIB=y
|
||||
BR2_PACKAGE_XORG7=y
|
||||
BR2_PACKAGE_XSERVER_XORG_SERVER=y
|
||||
BR2_PACKAGE_XLIB_LIBXAW=y
|
||||
BR2_PACKAGE_XLIB_LIBXCOMPOSITE=y
|
||||
BR2_PACKAGE_XAPP_XINPUT=y
|
||||
BR2_PACKAGE_XAPP_XRANDR=y
|
||||
BR2_PACKAGE_XDRIVER_XF86_INPUT_LIBINPUT=y
|
||||
BR2_PACKAGE_EVTEST=y
|
||||
BR2_PACKAGE_LIBXCRYPT=y
|
||||
BR2_PACKAGE_OPENSSL=y
|
||||
BR2_PACKAGE_LIBGUDEV=y
|
||||
BR2_PACKAGE_LIBUSB=y
|
||||
BR2_PACKAGE_MTDEV=y
|
||||
BR2_PACKAGE_LIBXML2=y
|
||||
BR2_PACKAGE_LIBNL=y
|
||||
BR2_PACKAGE_READLINE=y
|
||||
@@ -44,4 +59,9 @@ BR2_TARGET_ROOTFS_CPIO_UIMAGE=y
|
||||
BR2_PACKAGE_HOST_E2FSPROGS=y
|
||||
BR2_PACKAGE_NEXMON=y
|
||||
BR2_PACKAGE_VANILLA=y
|
||||
# BR2_PACKAGE_VANILLA_USE_DRM is not set
|
||||
BR2_PACKAGE_VANILLA_USE_LOCAL=y
|
||||
BR2_PACKAGE_VANILLA_LOCAL_PATH="/home/matt/src/vanilla"
|
||||
BR2_PACKAGE_NVIDIA_TEGRA_BSP=y
|
||||
BR2_PACKAGE_JOYCOND=y
|
||||
BR2_LINUX_TEGRA_T210_DEPS=y
|
||||
@@ -2,3 +2,4 @@ source "$BR2_EXTERNAL_VANILLA_PATH/package/nexmon/Config.in"
|
||||
source "$BR2_EXTERNAL_VANILLA_PATH/package/rpi-ffmpeg/Config.in"
|
||||
source "$BR2_EXTERNAL_VANILLA_PATH/package/vanilla/Config.in"
|
||||
source "$BR2_EXTERNAL_VANILLA_PATH/package/nvidia-tegra-bsp/Config.in"
|
||||
source "$BR2_EXTERNAL_VANILLA_PATH/package/joycond/Config.in"
|
||||
@@ -0,0 +1,6 @@
|
||||
config BR2_PACKAGE_JOYCOND
|
||||
bool "joycond"
|
||||
help
|
||||
Userspace daemon to combine joy-cons from the hid-nintendo kernel driver
|
||||
|
||||
https://github.com/DanielOgorchock/joycond.git
|
||||
@@ -0,0 +1,6 @@
|
||||
JOYCOND_VERSION = master
|
||||
JOYCOND_SITE = $(call github,DanielOgorchock,joycond,$(JOYCOND_VERSION))
|
||||
JOYCOND_LICENSE = GPL-3.0
|
||||
JOYCOND_LICENSE_FILES = LICENSE
|
||||
|
||||
$(eval $(cmake-package))
|
||||
@@ -0,0 +1,13 @@
|
||||
--- a/buildtools/b43/assembler/Makefile
|
||||
+++ b/buildtools/b43/assembler/Makefile
|
||||
@@ -24,8 +24,8 @@
|
||||
-Wshadow -Wpointer-arith
|
||||
SPARSEFLAGS = $(CFLAGS) -D__transparent_union__=__unused__ -D_STRING_ARCH_unaligned=1 \
|
||||
-D__builtin_stpcpy=stpcpy
|
||||
-#LDFLAGS += -lfl
|
||||
-LDFLAGS += -ll
|
||||
+LDFLAGS += -lfl
|
||||
+#LDFLAGS += -ll
|
||||
|
||||
BIN = b43-asm.bin
|
||||
SRCS = parser.c scanner.c main.c initvals.c util.c args.c
|
||||
@@ -1,5 +1,5 @@
|
||||
NEXMON_VERSION = master
|
||||
NEXMON_SITE = $(call github,seemoo-lab,nexmon,$(NEXMON_VERSION))
|
||||
NEXMON_SITE = $(call github,vanilla-wiiu,nexmon,$(NEXMON_VERSION))
|
||||
NEXMON_LICENSE = GPL-3.0
|
||||
NEXMON_LICENSE_FILES = LICENSE.txt
|
||||
|
||||
@@ -9,5 +9,19 @@ LD_MINOR_VER := $(word 2,$(LD_VERSION))
|
||||
|
||||
NEXMON_MODULE_SUBDIRS = patches/driver/brcmfmac_$(LD_MAJOR_VER).$(LD_MINOR_VER).y-nexmon
|
||||
|
||||
define NEXMON_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV)
|
||||
. $(@D)/setup_env.sh && \
|
||||
$(MAKE1) -C $(@D)
|
||||
endef
|
||||
|
||||
define NEXMON_INSTALL_TARGET_CMDS
|
||||
$(TARGET_MAKE_ENV) \
|
||||
. $(@D)/setup_env.sh && \
|
||||
$(MAKE1) -C $(@D)/patches/bcm4356/7_35_101_5_sta/wiiu
|
||||
cp $(@D)/patches/bcm4356/7_35_101_5_sta/wiiu/brcmfmac4356-pcie.bin \
|
||||
$(TARGET_DIR)/lib/firmware/brcm/brcmfmac4356A3-pcie.bin
|
||||
endef
|
||||
|
||||
$(eval $(kernel-module))
|
||||
$(eval $(generic-package))
|
||||
@@ -1,60 +1,80 @@
|
||||
NVIDIA_TEGRA_BSP_VERSION = 32.7.6
|
||||
NVIDIA_TEGRA_BSP_DEBS = $(BR2_EXTERNAL_VANILLA_PATH)/package/nvidia-tegra-bsp/debs
|
||||
NVIDIA_TEGRA_BSP_SITE = $(NVIDIA_TEGRA_BSP_DEBS)
|
||||
NVIDIA_TEGRA_BSP_SITE_METHOD = local
|
||||
|
||||
NVIDIA_TEGRA_BSP_SITE = https://developer.nvidia.com/downloads/embedded/l4t/r32_release_v7.6/t210
|
||||
NVIDIA_TEGRA_BSP_SOURCE = jetson-210_linux_r32.7.6_aarch64.tbz2
|
||||
|
||||
# Keep the Linux_for_Tegra/ top-level directory from the NVIDIA tarball.
|
||||
# Without this, Buildroot may strip the first path component during extraction.
|
||||
NVIDIA_TEGRA_BSP_STRIP_COMPONENTS = 0
|
||||
|
||||
# NVIDIA redistributability is restricted; do not mirror this package.
|
||||
NVIDIA_TEGRA_BSP_REDISTRIBUTE = NO
|
||||
NVIDIA_TEGRA_BSP_LICENSE = NVIDIA Tegra Linux Driver Package
|
||||
|
||||
NVIDIA_TEGRA_BSP_DEBS = $(@D)/Linux_for_Tegra/nv_tegra/l4t_deb_packages
|
||||
|
||||
#NVIDIA_TEGRA_BSP_PROVIDES = libegl libgles
|
||||
|
||||
TEGRA_TEGRA_DIR = /usr/lib/aarch64-linux-gnu/tegra
|
||||
|
||||
define NVIDIA_TEGRA_BSP_EXTRACT_DEB
|
||||
cd $(TARGET_DIR) && ar p $(strip $(1)) data.tar.zst | tar --zstd -xf -
|
||||
set -e; \
|
||||
deb="$(strip $(1))"; \
|
||||
data="$$(ar t "$$deb" | grep '^data\.tar' | head -n 1)"; \
|
||||
echo "Extracting $$(basename "$$deb")"; \
|
||||
case "$$data" in \
|
||||
data.tar.zst) ar p "$$deb" "$$data" | tar --zstd -C $(TARGET_DIR) -xf - ;; \
|
||||
data.tar.xz) ar p "$$deb" "$$data" | tar -xJ -C $(TARGET_DIR) -f - ;; \
|
||||
data.tar.gz) ar p "$$deb" "$$data" | tar -xz -C $(TARGET_DIR) -f - ;; \
|
||||
data.tar) ar p "$$deb" "$$data" | tar -x -C $(TARGET_DIR) -f - ;; \
|
||||
*) echo "Unsupported deb payload: $$data in $$deb"; exit 1 ;; \
|
||||
esac
|
||||
endef
|
||||
|
||||
define NVIDIA_TEGRA_BSP_INSTALL_TARGET_CMDS
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-core_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-3d-core_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-x11_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-multimedia_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-xusb-firmware_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-firmware_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-core_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-3d-core_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-x11_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-multimedia_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-xusb-firmware_*.deb))
|
||||
$(call NVIDIA_TEGRA_BSP_EXTRACT_DEB,$(wildcard $(NVIDIA_TEGRA_BSP_DEBS)/nvidia-l4t-firmware_*.deb))
|
||||
|
||||
# Symlink tegra libs into standard lib path
|
||||
for lib in $(TARGET_DIR)$(TEGRA_TEGRA_DIR)/*.so*; do \
|
||||
ln -sf $(TEGRA_TEGRA_DIR)/$$(basename $$lib) \
|
||||
$(TARGET_DIR)/usr/lib/aarch64-linux-gnu/$$(basename $$lib); \
|
||||
done
|
||||
# Symlink tegra libs into standard lib path
|
||||
for lib in $(TARGET_DIR)$(TEGRA_TEGRA_DIR)/*.so*; do \
|
||||
ln -sf $(TEGRA_TEGRA_DIR)/$$(basename $$lib) \
|
||||
$(TARGET_DIR)/usr/lib/aarch64-linux-gnu/$$(basename $$lib); \
|
||||
done
|
||||
|
||||
# GM20B firmware symlinks expected by the GPU driver
|
||||
$(INSTALL) -d $(TARGET_DIR)/lib/firmware/gm20b
|
||||
ln -sf ../tegra21x/nv_acr_ucode_prod.bin \
|
||||
$(TARGET_DIR)/lib/firmware/gm20b/acr_ucode.bin
|
||||
# GM20B firmware symlinks expected by the GPU driver
|
||||
$(INSTALL) -d $(TARGET_DIR)/lib/firmware/gm20b
|
||||
ln -sf ../tegra21x/nv_acr_ucode_prod.bin \
|
||||
$(TARGET_DIR)/lib/firmware/gm20b/acr_ucode.bin
|
||||
|
||||
# A .deb may contain this but Buildroot will fail if it's present
|
||||
rm -r $(TARGET_DIR)/etc/ld.so.conf.d
|
||||
# A .deb may contain this but Buildroot will fail if it's present
|
||||
rm -rf $(TARGET_DIR)/etc/ld.so.conf.d
|
||||
endef
|
||||
|
||||
define NVIDIA_TEGRA_BSP_INSTALL_STAGING_CMDS
|
||||
# EGL/GLES headers
|
||||
if [ -d $(TARGET_DIR)/usr/include/EGL ]; then \
|
||||
cp -a $(TARGET_DIR)/usr/include/EGL \
|
||||
$(STAGING_DIR)/usr/include/; \
|
||||
fi
|
||||
if [ -d $(TARGET_DIR)/usr/include/GLES2 ]; then \
|
||||
cp -a $(TARGET_DIR)/usr/include/GLES2 \
|
||||
$(STAGING_DIR)/usr/include/; \
|
||||
fi
|
||||
# EGL/GLES headers
|
||||
if [ -d $(TARGET_DIR)/usr/include/EGL ]; then \
|
||||
cp -a $(TARGET_DIR)/usr/include/EGL \
|
||||
$(STAGING_DIR)/usr/include/; \
|
||||
fi
|
||||
if [ -d $(TARGET_DIR)/usr/include/GLES2 ]; then \
|
||||
cp -a $(TARGET_DIR)/usr/include/GLES2 \
|
||||
$(STAGING_DIR)/usr/include/; \
|
||||
fi
|
||||
|
||||
# EGL/GLES libs for linking
|
||||
cp -a $(TARGET_DIR)$(TEGRA_TEGRA_DIR)/libEGL* $(STAGING_DIR)/usr/lib/
|
||||
cp -a $(TARGET_DIR)$(TEGRA_TEGRA_DIR)/libGLES* $(STAGING_DIR)/usr/lib/
|
||||
# EGL/GLES libs for linking
|
||||
cp -a $(TARGET_DIR)$(TEGRA_TEGRA_DIR)/libEGL* $(STAGING_DIR)/usr/lib/
|
||||
cp -a $(TARGET_DIR)$(TEGRA_TEGRA_DIR)/libGLES* $(STAGING_DIR)/usr/lib/
|
||||
|
||||
# pkg-config files
|
||||
$(INSTALL) -d $(STAGING_DIR)/usr/lib/pkgconfig/
|
||||
printf 'Name: egl\nDescription: NVIDIA Tegra EGL\nVersion: 1.5\nLibs: -lEGL\nCflags:\n' \
|
||||
> $(STAGING_DIR)/usr/lib/pkgconfig/egl.pc
|
||||
printf 'Name: glesv2\nDescription: NVIDIA Tegra GLES2\nVersion: 3.2\nLibs: -lGLESv2\nCflags:\n' \
|
||||
> $(STAGING_DIR)/usr/lib/pkgconfig/glesv2.pc
|
||||
# pkg-config files
|
||||
$(INSTALL) -d $(STAGING_DIR)/usr/lib/pkgconfig/
|
||||
printf 'Name: egl\nDescription: NVIDIA Tegra EGL\nVersion: 1.5\nLibs: -lEGL\nCflags:\n' \
|
||||
> $(STAGING_DIR)/usr/lib/pkgconfig/egl.pc
|
||||
printf 'Name: glesv2\nDescription: NVIDIA Tegra GLES2\nVersion: 3.2\nLibs: -lGLESv2\nCflags:\n' \
|
||||
> $(STAGING_DIR)/usr/lib/pkgconfig/glesv2.pc
|
||||
endef
|
||||
|
||||
$(eval $(generic-package))
|
||||
@@ -0,0 +1,5 @@
|
||||
# Locally calculated
|
||||
sha256 54b199c9280ff8bf0f73a54a759645bd0eeeda7255d1c99310d5b7595f3ac066 xorg-server-1.20.14.tar.gz
|
||||
sha512 37be65b3b1054816454c524eacb5ba25c00020abdb4f3580c91a18139cb9f2f9d2d3f22b3608a2242f73a5de2b6361e913fa8ba2cbc692772ccd800cf86e7b5f xorg-server-1.20.14.tar.gz
|
||||
# Locally calculated
|
||||
sha256 4cc0447a22635c7b2f1a93fec4aa94f1970fadeb72a063de006b51cf4963a06f COPYING
|
||||
@@ -0,0 +1,199 @@
|
||||
################################################################################
|
||||
#
|
||||
# xserver_xorg-server
|
||||
#
|
||||
################################################################################
|
||||
|
||||
XSERVER_XORG_SERVER_VERSION = 1.20.14
|
||||
XSERVER_XORG_SERVER_SOURCE = xorg-server-$(XSERVER_XORG_SERVER_VERSION).tar.gz
|
||||
XSERVER_XORG_SERVER_SITE = https://xorg.freedesktop.org/archive/individual/xserver
|
||||
XSERVER_XORG_SERVER_LICENSE = MIT
|
||||
XSERVER_XORG_SERVER_LICENSE_FILES = COPYING
|
||||
XSERVER_XORG_SERVER_CPE_ID_VENDOR = x.org
|
||||
XSERVER_XORG_SERVER_CPE_ID_PRODUCT = x_server
|
||||
XSERVER_XORG_SERVER_SELINUX_MODULES = xdg xserver
|
||||
XSERVER_XORG_SERVER_INSTALL_STAGING = YES
|
||||
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES = \
|
||||
xutil_util-macros \
|
||||
xlib_libX11 \
|
||||
xlib_libXau \
|
||||
xlib_libXdmcp \
|
||||
xlib_libXext \
|
||||
xlib_libXfixes \
|
||||
xlib_libXfont2 \
|
||||
xlib_libXi \
|
||||
xlib_libXrender \
|
||||
xlib_libXres \
|
||||
xlib_libXft \
|
||||
xlib_libXcursor \
|
||||
xlib_libXinerama \
|
||||
xlib_libXrandr \
|
||||
xlib_libXdamage \
|
||||
xlib_libXxf86vm \
|
||||
xlib_libxkbfile \
|
||||
xlib_libxcvt \
|
||||
xlib_xtrans \
|
||||
xdata_xbitmaps \
|
||||
xorgproto \
|
||||
xkeyboard-config \
|
||||
pixman \
|
||||
mcookie \
|
||||
host-pkgconf
|
||||
|
||||
# We force -O2 regardless of the optimization level chosen by the
|
||||
# user, as the X.org server is known to trigger some compiler bugs at
|
||||
# -Os on several architectures.
|
||||
XSERVER_XORG_SERVER_CONF_OPTS = \
|
||||
--disable-config-hal \
|
||||
--enable-record \
|
||||
--disable-xnest \
|
||||
--disable-unit-tests \
|
||||
--with-builder-addr=buildroot@buildroot.org \
|
||||
CFLAGS="$(TARGET_CFLAGS) -Wno-array-bounds -I$(STAGING_DIR)/usr/include/pixman-1 -O2" \
|
||||
--with-fontrootdir=/usr/share/fonts/X11/ \
|
||||
--$(if $(BR2_PACKAGE_XSERVER_XORG_SERVER_XEPHYR),en,dis)able-xephyr \
|
||||
--$(if $(BR2_PACKAGE_XSERVER_XORG_SERVER_XVFB),en,dis)able-xvfb
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += \
|
||||
--with-systemd-daemon \
|
||||
--enable-systemd-logind
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += \
|
||||
systemd
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += \
|
||||
--without-systemd-daemon \
|
||||
--disable-systemd-logind
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-xorg
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += libpciaccess
|
||||
ifeq ($(BR2_PACKAGE_LIBDRM),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += libdrm
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-libdrm
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-libdrm
|
||||
endif
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-xorg
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_KDRIVE),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += \
|
||||
--enable-kdrive \
|
||||
--disable-glx \
|
||||
--disable-dri
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_XEPHYR),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += \
|
||||
xcb-util-image \
|
||||
xcb-util-keysyms \
|
||||
xcb-util-renderutil \
|
||||
xcb-util-wm
|
||||
endif
|
||||
else # modular
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-kdrive
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_HAS_LIBGL),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri --enable-glx
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += libgl
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri --disable-glx
|
||||
endif
|
||||
|
||||
# Optional packages
|
||||
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += udev
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-udev
|
||||
# udev kms support depends on libdrm and dri2
|
||||
ifeq ($(BR2_PACKAGE_LIBDRM),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-udev-kms
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-config-udev-kms
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_DBUS),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += dbus
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-config-dbus
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_FREETYPE),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += freetype
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBUNWIND),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += libunwind
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-libunwind
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-libunwind
|
||||
endif
|
||||
|
||||
ifneq ($(BR2_PACKAGE_XLIB_LIBXVMC),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-xvmc
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XLIB_LIBXCOMPOSITE),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += xlib_libXcomposite
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-composite
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XSERVER_XORG_SERVER_MODULAR),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri2
|
||||
ifeq ($(BR2_PACKAGE_XLIB_LIBXSHMFENCE),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += xlib_libxshmfence
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-dri3
|
||||
ifeq ($(BR2_PACKAGE_HAS_LIBEGL)$(BR2_PACKAGE_HAS_LIBGL)$(BR2_PACKAGE_LIBEPOXY),yyy)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += libepoxy
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-glamor
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-glamor
|
||||
endif
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri3 --disable-glamor
|
||||
endif
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-dri2 --disable-dri3 --disable-glamor
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XLIB_LIBXSCRNSAVER),y)
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += xlib_libXScrnSaver
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --enable-screensaver
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --disable-screensaver
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --with-sha1=libcrypto
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += openssl
|
||||
else ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --with-sha1=libgcrypt
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += libgcrypt
|
||||
else
|
||||
XSERVER_XORG_SERVER_CONF_OPTS += --with-sha1=libsha1
|
||||
XSERVER_XORG_SERVER_DEPENDENCIES += libsha1
|
||||
endif
|
||||
|
||||
# Install the systemd unit only when nodm nor xdm aren't enabled, as
|
||||
# they would be responsible for starting the server.
|
||||
ifeq ($(BR2_PACKAGE_NODM)$(BR2_PACKAGE_XAPP_XDM),)
|
||||
define XSERVER_XORG_SERVER_INSTALL_INIT_SYSTEMD
|
||||
$(INSTALL) -D -m 0644 package/x11r7/xserver_xorg-server/xorg.service \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/xorg.service
|
||||
endef
|
||||
endif
|
||||
|
||||
# Install the init script only when neither nodm nor xdm are enabled, as
|
||||
# they would be responsible for starting the server.
|
||||
ifeq ($(BR2_PACKAGE_NODM)$(BR2_PACKAGE_XAPP_XDM),)
|
||||
define XSERVER_XORG_SERVER_INSTALL_INIT_SYSV
|
||||
$(INSTALL) -D -m 755 package/x11r7/xserver_xorg-server/S40xorg \
|
||||
$(TARGET_DIR)/etc/init.d/S40xorg
|
||||
endef
|
||||
endif
|
||||
|
||||
$(eval $(autotools-package))
|
||||
@@ -0,0 +1,49 @@
|
||||
FROM docker.io/debian:trixie
|
||||
|
||||
ARG ARCH=x86_64
|
||||
ENV ARCH=${ARCH}
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ENV TZ=Etc/UTC
|
||||
|
||||
RUN dpkg --add-architecture i386 && \
|
||||
apt -y update && \
|
||||
apt -y install which \
|
||||
sed \
|
||||
make \
|
||||
binutils \
|
||||
build-essential \
|
||||
diffutils \
|
||||
gcc \
|
||||
g++ \
|
||||
bash \
|
||||
patch \
|
||||
gzip \
|
||||
bzip2 \
|
||||
perl \
|
||||
tar \
|
||||
cpio \
|
||||
unzip \
|
||||
rsync \
|
||||
file \
|
||||
bc \
|
||||
findutils \
|
||||
gawk \
|
||||
wget \
|
||||
flex \
|
||||
xxd \
|
||||
bison \
|
||||
libc6:i386 \
|
||||
libstdc++6:i386 \
|
||||
qpdf \
|
||||
zstd \
|
||||
git && \
|
||||
apt-get clean && \
|
||||
apt-get autoremove --yes && \
|
||||
rm -rf /var/lib/{apt,dpkg,cache,log}/
|
||||
|
||||
RUN git clone --branch 2025.11-rc2 https://github.com/buildroot/buildroot.git /buildroot
|
||||
|
||||
ENV FORCE_UNSAFE_CONFIGURE=1
|
||||
|
||||
ENTRYPOINT [ "/vanilla/docker/nintendoswitch/build.sh" ]
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# Patch Buildroot to build an older version of X11 because the Tegra BSP isn't compatible with the newer one
|
||||
cp /vanilla/buildroot/package/x11r7/* /buildroot/package/x11r7/xserver_xorg-server/
|
||||
|
||||
# Main build
|
||||
make -C /buildroot O=/build BR2_EXTERNAL=/vanilla/buildroot vanilla_nx_defconfig
|
||||
/buildroot/utils/config --file /build/.config -e BR2_PACKAGE_VANILLA_USE_LOCAL
|
||||
/buildroot/utils/config --file /build/.config --set-str BR2_PACKAGE_VANILLA_LOCAL_PATH /vanilla
|
||||
make -C /buildroot O=/build
|
||||
|
||||
# Copy initramfs
|
||||
mkdir -p /install/bootloader/ini
|
||||
mkdir -p /install/switchroot/vanilla/data
|
||||
mv /build/images/rootfs.cpio.uboot /install/switchroot/vanilla/initramfs
|
||||
|
||||
# Copy icons
|
||||
cp /vanilla/gui/res/switch/bootlogo_vanilla.bmp /install/switchroot/vanilla/
|
||||
cp /vanilla/gui/res/switch/icon_vanilla.bmp /install/switchroot/vanilla/
|
||||
|
||||
# Copy bootloader ini
|
||||
cp /vanilla/gui/res/switch/vanilla.ini /install/bootloader/ini/
|
||||
|
||||
# Create U-Boot image of kernel
|
||||
/build/host/bin/mkimage -A arm64 -O linux -T kernel -C none -a 0x80200000 -e 0x80200000 -d /build/images/Image /install/switchroot/vanilla/uImage
|
||||
|
||||
# Copy pre-made config
|
||||
cp /vanilla/gui/res/switch/config.xml /install/switchroot/vanilla/data/
|
||||
|
||||
# Copy support files
|
||||
cp /vanilla/gui/res/switch/bl31.bin /install/switchroot/vanilla/
|
||||
cp /vanilla/gui/res/switch/bl33.bin /install/switchroot/vanilla/
|
||||
cp /vanilla/gui/res/switch/boot.scr /install/switchroot/vanilla/
|
||||
cp /vanilla/gui/res/switch/nx-plat.dtimg /install/switchroot/vanilla/
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 3.5 MiB |
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0"?>
|
||||
<vanilla>
|
||||
<consoles>
|
||||
<console>
|
||||
<name>Wii U</name>
|
||||
<bssid>9ce63589f813</bssid>
|
||||
<psk>e6a31b46fd78b758e15245486e6ca81d12d7aec63ace0007a742b91500b7d40c</psk>
|
||||
</console>
|
||||
</consoles>
|
||||
<server>FFFFFFFF</server>
|
||||
<wireless>wlan0</wireless>
|
||||
<connectionsetup>1</connectionsetup>
|
||||
<region>0</region>
|
||||
<swapabxy>0</swapabxy>
|
||||
<fullscreen>1</fullscreen>
|
||||
<fastdrm>0</fastdrm>
|
||||
<controls>
|
||||
<keys/>
|
||||
<buttons/>
|
||||
<axes/>
|
||||
</controls>
|
||||
<cursorinfullscreen>0</cursorinfullscreen>
|
||||
<recordingdir></recordingdir>
|
||||
</vanilla>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
[Vanilla]
|
||||
l4t=1
|
||||
boot_prefixes=/switchroot/vanilla/
|
||||
id=SWR-VAN
|
||||
r2p_action=bootloader
|
||||
icon=switchroot/vanilla/icon_vanilla.bmp
|
||||
uart_port=0
|
||||
fbconsole=0 ; TEMP: Verbose boot
|
||||
hdmi_fbconsole=0 ; TEMP: Verbose boot
|
||||
logopath=switchroot/vanilla/bootlogo_vanilla.bmp
|
||||
bootargs_extra=net.ifnames=0
|
||||
Reference in new issue
Block a user