Re: [PATCH 0/3] sparc: port to copy_thread_tls() and struct kernel_clone_args
From: Mark Cave-Ayland
Date: Sun May 17 2020 - 13:15:58 EST
On 17/05/2020 16:01, Christian Brauner wrote:
> On Tue, May 12, 2020 at 01:06:33PM -0700, David Miller wrote:
>> From: Christian Brauner <christian.brauner@xxxxxxxxxx>
>> Date: Tue, 12 May 2020 19:15:24 +0200
>>
>>> I've tested this series with qemu-system-sparc64 and a Debian Sid image
>>> and it comes up no problem (Here's a little recording
>>> https://asciinema.org/a/329510 ).
>>
>> Can you show how you put this environment together and also what
>> compilation tools you used? Looks great.
>
> Sorry for the delay. That mail somehow got lost in my inbox.
>
> So in general, I used qemu-system-sparc64 which is available in Universe
> with either Debian or Ubuntu and that's what I've been using as host
> distro. So you need a
>
> deb http://us.archive.ubuntu.com/ubuntu/ <release-name> universe
> deb-src http://us.archive.ubuntu.com/ubuntu/ <release-name> universe
> deb http://us.archive.ubuntu.com/ubuntu/ <release-name>-updates universe
> deb-src http://us.archive.ubuntu.com/ubuntu/ <release-name>-updates universe
>
> int /etc/apt/sources.list
>
> So after this, you should be able to install
>
> apt install qemu-system-sparc
>
> Now we need an image and believe it or not there's a guy who lives in
> Berlin too who builds Debian images for all crazy architectures. You can
> download them from:
>
> https://cdimage.debian.org/cdimage/ports/
>
> They're built quite frequently. Sometimes you get unlucky because a new
> kernel won't boot anymore then going a couple of months back usually
> helps. So for this experiment I downloaded:
>
> https://cdimage.debian.org/cdimage/ports/9.0/sparc64/iso-cd/debian-9.0-sparc64-NETINST-1.iso
>
> then I did:
>
> cd .local/share/qemu
> truncate -s 15GB sparc64.img
>
> And then to _install_:
>
> qemu-system-sparc64 \
> -m 4096 \
> -device virtio-blk-pci,bus=pciB,drive=hd \
> -drive file=/home/brauner/Downloads/debian-9.0-sparc64-NETINST-1.iso,format=raw,if=ide,bus=1,unit=0,media=cdrom,readonly=on \
> -drive file=/home/brauner/.local/share/qemu/sparc64.img,format=raw,if=none,id=hd \
> -boot order=d \
> -net nic \
> -net user \
> -nographic \
>
> Then the Debian install will run after it finishes you can boot with:
>
> qemu-system-sparc64 \
> -name debian-unstable-sparc64 -machine sun4u,accel=tcg,usb=off -m 4096 \
> -smp 1,sockets=1,cores=1,threads=1 \
> -uuid ccd8b5c2-b8e4-4d5e-af19-9322cd8e55bf -rtc base=utc -no-reboot -no-shutdown \
> -boot strict=on \
> -drive file=/home/brauner/.local/share/qemu/sparc64.img,if=none,id=drive-ide0-0-1,format=raw,cache=none,aio=native \
> -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-1,id=ide0-0-1 \
> -msg timestamp=on -nographic
>
> If the install isn't setting up the repos right and you can't install
> stuff the correct url is:
> http://ftp.ports.debian.org/debian-ports/
> to put into sources.list
FWIW if you're running a more recent version of QEMU (>=3.1) then you can also boot
from the virtio-blk-pci device directly instead of having to switch back to the IDE
device after installation as you have done above. Should be something like:
qemu-system-sparc64 \
-m 4096 \
-device virtio-blk-pci,bus=pciB,drive=hd \
-drive
file=/home/brauner/.local/share/qemu/sparc64.img,format=raw,if=none,id=hd,bootindex=0 \
-net nic \
-net user \
-nographic
Note the removal of the legacy -boot argument and the addition of "bootindex=0" to
the -drive argument.
ATB,
Mark.