https://github.com/Quill-OS/quill logo
Quill OS image install
# pine-dev
t
@Szybet @Caffeine Here is where we can troubleshoot Quill image install
I am currently uploading my backup to pkgs server
c
Okay
t
you will then need to mount it with
mount pinenote-backup-20260120.img.squashfs /mnt
did you backup your pinenote yet?
c
I will have to do it soon. I've been shopping for last minute stuff for my trip.
t
Ok,Let me know when it's done Be sure to backup the first sectors at least Thanks
c
Okay, here we go. I'm going to prepare the backup of the boot sectors.
t
you know how to do it?
c
Yep, I'm reading the instructions from a few days ago.
t
oh, yes i had forgotten i had sent you that
c
I don't think it'll matter if I do it from Arch or not. (I have a duel boot setup right now).
t
what is your other os
c
Debian on OS1, Arch on OS2.
Max's build of Debian.
t
oh
well, no
but you know you will lose your current setup right?
c
Yeah, idc
t
ok, then
c
Alright, I got it.
Transferring it to a USB drive and backing it up.
t
good
c
Complete.
t
ok
c
Just downloading the squashfs filesystem and transferring it to the PN.
Might take a bit.
t
well, dont transfer it just yet
c
I meant the file.
I'm downloading it on the computer and copying the file to the PN via USB.
It downloads stuff rlly slow.
t
yes, i dont think you will need to do it
just keep it on your computer for now
c
Kk. Are you gonna get me to flash it via rkdeveloptool or smthn.
t
dd, probably, or at least in part
c
Aight.
download this too
c
Thanks
t
we will flash them with rkdeveloptool
you know how to flash uboot and logo part?
c
Vaguely? Last time I did that was with rkdeveloptool.
t
Copy code
rkdeveloptool write-partition uboot uboot.img
rkdeveloptool write-partition logo logo_new.img
c
Okay, I'll have to get rkdeveloptool again rq.
It's been a while.
t
tell me when its done
c
Apologies I got occupied midway.
Alright, I'm ready
Done.
I mounted this file.
t
I just woke up
Sorry for yesterday
I'm in Montreal timezone
Well, is anything different when you boot the pinenote?
c
I'll need to check. It's like 3am and I was about to rest
I'll check it in the morning
Before I go can you give me instructions on what to do with this.
t
Hm, yes Do you know how to recreate a gpt partition table?
I could make you copy the sectors to overwrite yours, but it's more risky
c
I understand what you want me to do. Like the text file that lists all the partitions to create using rkdeveloptool.
yes, roughly
c
Right, I haven't made my own before. But I can look at the Debian one as a reference.
t
just run them (the ones in run_command) with rkdeveloptool the files to download are in the link
c
Okay, I'll just check
t
Copy code
nicolas@pinenote ~ % sudo fdisk -l
[sudo] password for nicolas:
Disk /dev/mmcblk0: 115.25 GiB, 123748745216 bytes, 241696768 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: EA4F0000-0000-4C58-8000-26FA00000953

Device            Start       End   Sectors  Size Type
/dev/mmcblk0p1    16384    147455    131072   64M unknown
/dev/mmcblk0p2   147456    151551      4096    2M unknown
/dev/mmcblk0p3   151552    153599      2048    1M unknown
/dev/mmcblk0p4   153600    284671    131072   64M unknown
/dev/mmcblk0p5   284672  31004671  30720000 14.6G unknown
/dev/mmcblk0p6 31004672  51976191  20971520   10G Linux filesystem
/dev/mmcblk0p7 51976192  52500479    524288  256M Linux filesystem
/dev/mmcblk0p8 52500480  73471999  20971520   10G Linux filesystem
/dev/mmcblk0p9 73472000 241694719 168222720 80.2G Linux filesystem


Disk /dev/mmcblk0boot0: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mmcblk0boot1: 4 MiB, 4194304 bytes, 8192 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
this is roughly what we want
the commands i just sent you will allow you to export the entire pinenote as a USB disk
from there you can play around with the partition table meanwhile while you rest i can try to find a way to just copy the sectors acting on the layout and nothing else, so you dont have to do it by hand
c
If it comes to it I will but I may run out of time before my flight
I have work tomorrow and then Monday is the day of getting everything together before I leave on Tuesday.
So let's see if we can do it.
t
pinenote stand isnt on sunday?
c
I'm leaving early
If I'm going to Brussels I wanna go have a look at stuff 😅
Never left my country before.
t
yea i understand
c
Next week is FOSDEM
And it is on Sunday
t
ooh, 31st
c
My timezone is just one day ahead, mb for the confusion.
t
thought it was this weekend
so, you leave on tuesday for brussels
c
Nahh, I thought I conveyed the correct timing in my message a few days ago
Whoops
t
maybe me
c
Doesn't matter
t
so you should still have time in brussels?(a bit)
c
Yeah, I'm taking my laptop
t
good then
well, for today, at least try to flash the other files i mentioned earlier dont touch partition table for now
c
If we don't get it working before I leave we can get it working when I get to Brussels
t
if you are ok with it
c
Yeah, I'm following your lead
t
there should be easy way to check if it works, just start the device, and uboot should have a better look ;p
c
I understand what you're trying to do.
I'll do that in the morning. I've turned everything off
t
there will be an option named "UMS kernel", select it (unplug the device before), wait a few secs, then plug usb back in
you should see pinenote appearing as usb storage on your computer
thanks a lot
c
Noted
All good, talk in the morning
t
Good, no worries, so we can continue later this week too if you dont have time for the rest today
good night
c
Good morning
t
hello
i find new zealand time so strange here its 4pm
c
It's nearly 11am
I probably should've gone to sleep earlier lol
Should I start sorting out a partition table to flash
t
no, try that first
c
Oh right, pardon me.
t
np
c
I'm going to turn on the PineNote first
Yes, that worked.
just follow those commands?
you said there were some missing as well.
t
good does it look different now?
c
Yes.
t
no, i meant that i forgot to tell you to run these commands
be careful with the offsets
0xabc
c
I like the feature where there is an option to plop straight into rockusb mode. Thanks for that, it's always a pain to do :)
t
yes, i think we were fed up with that lol
c
Alright, I'll flash the files.
I'll just be a sec.
t
np
c
Is that just an example?
Alright, what should I do now
t
yes
just copy the numbers in the screenshot
c
Nah I did it
t
oh ok then
c
I'm done flashing all that
I rebooted
t
well, unplug usb
and select the UMS kernel option
then replug usb
if everything all good you should see usb disk on computer
c
Bus 001 Device 019: ID 0525:a4a5 Netchip Technology, Inc. Linux-USB File-backed Storage Gadget
But I do not see any disks coming up.
Oh, nevermind haha
t
do fdisk -l
c
there they are
t
but yes, it works
c
Very cool
Took a little while for it to show up
t
i will be going home shortly, might be unavailable for some time
im a church organist, saturday mass just finished
That's sick!
No problem.
t
If you want you can try to recreate the partition layout yourself
The one I sent above
Otherwise maybe I can search for other options
c
Will this be flashed using rkdeveloptool?
Or can I create a new gpt filesystem on the exposed drive
t
No
Just use gptfdisk on sdc
Probably
c
Okay,
t
Be sure to respect the offsets
Especially for the 1st partition
You don't want to overwrite the first sectors
c
I have no idea then.
I'll probably wait.
t
hang on, imma try to find how quillstrap did it
at this point, i think it would almost be simpler if you installed vscode with the devcontainer environment but i can still try to provide you with way to flash partition layout
c
Okay, I see.
t
ensure the device still boots after this step
or boots to uboot at least
c
Need to go to work now. I'll let you know.
t
np
ill probably be sleeping from 7pm your time,just so you know
c
Alright, I won't see you later tonight (for me) then. I'll talk to you tomorrow.
Thanks again for your help with this.
Ralim has been really excited about QuillOS so he'll be happy to see it working :)
t
who is he?
/they
c
Creator of IronOS
For the Pinecil
t
well, thats cool
send him greetings from me
c
Will do.
Since he's not on Discord he asks me for updates on the project and I forward him videos from the Discord.
t
nice
c
Can confirm it no longer boots at all.
t
does it show boot menu?
c
Nothing
t
do you have serial adapter
c
Yeah.
Give me a sec.
Baud rate of 9600?
t
no
1500000
t
Copy code
** No partition table - mmc 0 **
hm, bad
i was fearing uboot would not show up
so at least thats good
ok i have some idea now
wait a sec
can you run
printenv
and post output?
Here
t
good
Copy code
echo Please provide Image.gz; loady ${kernel_addr_c}; echo Please provide FDT; loady ${fdt_addr_r}; unzip ${kernel_addr_c} ${kernel_addr_r}; booti ${kernel_addr_r} - ${fdt_addr_r}\
do you have picocom
c
the command?
t
or some client that can send files using ymodem protocol?
c
I'm using minicom
t
yes, once you are ready, copy-paste it into uboot prompt
do you have
lrzsz
package installed?
on your computer
c
No
t
maybe minicom bundled it
well, it is needed for sending files over serial
c
Sorry, it is
t
good, np
c
mb
Can I use minicom for this or no?
t
so, it will ask you to send files just send the ones you flashed the other day
Image.gz and dtb
yes, Ctrl+A and then S i think to send files
choose "ymodem protocol" or smth that looks like that
I think it's working
t
is it sending stuff?
did you provide file path?
c
I think that's what the CCCC is?
t
the CCCC usually just means its waiting for you to send stuff
But actually, there may be a simpler thing to do
c
Okay I figured it out
t
Copy code
mmc read ${kernel_addr_c} 0x35800 0x4000; mmc read ${fdt_addr_r} 0x39800 0x400; unzip ${kernel_addr_c} ${kernel_addr_r}
just run this
c
it's uploading them
t
we overwrote partition table, but probably not the rest of the mmc
c
Oh, bruh
t
well, good if its uploading
we can wait
3mb on 150000bps isnt too long
c
I didn't see your message
t
no issue
send dtb afterwards and it should boot
to the UMS kernel
c
I selected both
t
then you can plug in regular usb and we can try to work out what happened
c
so it'll upload both
t
one at a time, right?
c
It's uploading Image.gz first then dtb.
But I selected both to be uploaded.
t
well, tell me if it works
when its done
normally it asks for the files in order
c
Ah ok.
> B00000000000000Unknown command 'B00000000000000' - try 'help'=>
Trying to upload dtb
t
hm, probably that something will go wrong
c
Oh, I just need to restart the program
*command
t
hm, discord seems to be cutting the line width in the file preview
welp
c
Press fullscreen
t
when you reboot, just copy paste this, it should just work, no need to send stuff over serial
mmc read ${kernel_addr_c} 0x35800 0x4000; mmc read ${fdt_addr_r} 0x39800 0x400; unzip ${kernel_addr_c} ${kernel_addr_r}; booti ${kernel_addr_r} - ${fdt_addr_r}
c
Done
t
so it shows up on your pc?
t
good, well this one isnt seeing the partition table either
when you ran the commands yesterday, did it show up fine afterwards?
can you try again and send the output, then
fdisk -l
to see? ensure its the right device node
c
Which commands?
t
yes
c
No.
the sgdisk table one?
t
oh ok
c
I only did it today
cause I went to work yesterday
t
well, try to run them again
c
Copy code
camden@fedora:~/QuillOS$ sudo sgdisk --load-backup=table /dev/sdc
[sudo] password for camden: 
Found valid GPT with corrupt MBR; using GPT and will write new
protective MBR on save.
The operation has completed successfully.
camden@fedora:~/QuillOS$ sudo sgdisk -G /dev/sdc
Found valid GPT with corrupt MBR; using GPT and will write new
protective MBR on save.
The operation has completed successfully.
grabbing fdisk -l output now
Copy code
Disk /dev/sdc: 115.25 GiB, 123748745216 bytes, 241696768 sectors
Disk model: File-Stor Gadget
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 2E445C05-77CE-445D-8373-E2564A113EAD

Device        Start       End   Sectors  Size Type
/dev/sdc1     16384    147455    131072   64M unknown
/dev/sdc2    147456    151551      4096    2M unknown
/dev/sdc3    151552    153599      2048    1M unknown
/dev/sdc4    153600    284671    131072   64M unknown
/dev/sdc5    284672  31004671  30720000 14.6G unknown
/dev/sdc6  31004672  51976191  20971520   10G Linux filesystem
/dev/sdc7  51976192  52500479    524288  256M Linux filesystem
/dev/sdc8  52500480  73471999  20971520   10G Linux filesystem
/dev/sdc9  73472000 241694719 168222720 80.2G Linux filesystem
t
so, better now, probably?
c
Lets hope so?
I must have done something wrong, but I checked my devices earlier.
Unsure.
t
now, try to
mkfs.ext4 /dev/sdc5
to
sdc9
dont touch partitions below sdc5
they are partitions without filesystems
just raw data
c
noted.
Alright, I've formatted sdc5-sdc9
t
good now try to reboot the pinenote and check uboot log
ensure it doesnt say partition layout is missing
then, come back to ums kernel (it should work with the graphical option), and we will start flashing the actual os
sync
c
Uboot is back
t
well, good, ui is working?
c
Yes.
t
Good go to ums kernel
c
Yep, done
t
also, on your pc, mount the squashfs archive i sent you the other day
mount xyz.squashfs /mnt
c
Yep, I think it's still mounted. Wait a sec.
Sweet, it's good.
t
then
Copy code
losetup -P -f --show /mnt/xyz.img
take note of the loop device that it prints
c
Wait, but what if it's already mounted?
t
oh , my bad
in /mnt there will be a .img file, not squashfs
do losetup on that one
c
Ok.
camden@fedora:~/QuillOS$ losetup -P -f --show /mnt/squash/pinenote-backup-20260120.img losetup: /mnt/squash/pinenote-backup-20260120.img: failed to set up loop device: No such file or directory
Uhh, it's right there :/
t
ls -shal /mnt
?
c
camden@fedora:~/QuillOS$ ls -shal /mnt total 0 0 drwxr-xr-x. 1 root root 12 Jan 24 21:46 . 0 dr-xr-xr-x. 1 root root 182 Jan 24 18:26 .. 0 drwxrwxrwx. 2 camden camden 51 Jan 21 04:23 squash
t
try now
dmesg
and see if any relevant things related to
loop
appear
also, maybe try
sudo
with
losetup
it should say permission denied instead of ENOINT but idk
c
/dev/loop2
t
good
hm, maybe my file has been corrupted a bit
can you do fdisk -l?
c
Disk /dev/loop2: 25.03 GiB, 26880245760 bytes, 52500480 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000
t
well, a bit bad
c
Device Boot Start End Sectors Size Id Type /dev/loop2p1 1 52500479 52500479 25G ee GPT
t
i will do individual squashfses then
one at a time
hang on
c
That's probs easier.
t
i mean, you could dd the raw sectors to the pinenote, partition by partition, but that would be a bit cumbersome
i planned to make you mount the partitions from my backup and then copy the files from there
c
shrug I'm following your lead.
Whatever is more consistent.
I'll remount just to make sure gimme a sec.
c
Ta.
Copy code
Disk /dev/loop0: 2.92 GiB, 3130564608 bytes, 6114384 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
That's it
t
yes, ignore that one
just mount boot.squashfs, then copy all the files in it to mmcblk0p7
c
kk, thx
t
you did backup your waveform, right?
c
I sent it here as proof 😅
t
hm, actually good, but its already on your device because we didnt touch it
c
Yes
Ah ok
t
good, i will generate custom_wf.bin
c
cheers
would you like me to send it again
t
well, can you just reply to the message
so i can see it
thanks
c
easier.
SDC5?
t
no, sdc7
p7
c
k
in p7, there is a folder named
waveform
that you will copy in this folder, you need to do 2 things: 1. replace
ebc.wbf
by
waveform.img
(the one you sent) 2. replace
custom_wf.bin
with the one i just sent
(rename
waveform.img
to
ebc.wbf
, though)
just replace both files
c
What about the custom_wf.bin in the root of the boot partition
t
how come there is that file there
wait imma check
c
There is one in the waveform folder, to be clear.
but also one in the root of the boot parition.
t
Copy code
nicolas@nimac /tmp> squashfuse boot.squashfs /tmp/mount
nicolas@nimac /tmp> ls mount
boot_config.ron               firmware.squashfs             qinit_binaries.squashfs       rsa_hkey.pub
debug-setup.sh*               firmware.squashfs.dgst        qinit_binaries.squashfs.dgst  waveform/
DTB                           Image.gz                      rsa_hkey
nicolas@nimac /tmp>
this is the squashfs i had sent you
t
there should be no custom_wf at the root
c
No idea how it got there
t
can you do
ls -shalR
on that partition?
c
sudo cp -r * /run/media/camden/d846090d-2f53-405f-85e8-d2df324f6c49
in the mounted folder
t
sudo cp -r . instead of * maybe
c
But * means everything in the folder
t
yea, idk, sometimes bash is strange
c
Alright, I'll try it
t
otherwise you can also do
unsquashfs -f -d /path/to/partition boot.squashfs
with sudo
c
That would've been nice to know earlier :P
ta
t
i am uploading rootfs partition squashfs, it says ETA 12m
c
alright, thanks
t
i think after that we should be done hopefully
t
you will need to edit boot_config.ron with vim,nano or smth change first_boot_done from true to false
c
Will these permissions be an issue later?
t
probably not, uboot doesnt care much
c
All good
It's nice to know there's commands for these things. I have already learned a lot of new ones the past couple of days XD.
Mainly because I've never touched squashfs before.
t
sometimes it is a bit quirky, i think thats why i didnt think about it immediately
c
I knew it existed, but yeah.
t
squashfs is too nice
but welp, my opinion
its like a mountable tar archive
c
I think that's nice, but it's quite troublesome.
Not as friendly.
t
idk, i have known about it since 2020, so im pretty used to it now
c
Yeah, not trying to dog on it or anything. It's very good at compression.
t
sure
c
Anyways, I appreciate your patience.
t
no worries, you seem to know linux cli quite well
transfer is at 72% now, done in about 5min
did you edit the boot config in the meantime?
c
I'll do that now.
you can tell me when its done downloading
but basically,
sudo unsquashfs -f -d /path/to/mounted/sdc9 rootfs-part.squashfs
c
eta 10m
t
np
did you also copy the waveform files?
and custom_wf
c
Yes. I did both.
t
good
i expect to have maybe forgotten something on first boot, but we will see with serial output
maybe it will just work
c
Fingers crossed :)
What is quill recovery?
silly question now that I think about it. It is what it says it is. How does quill recovery work?
t

https://youtu.be/HORhEmINF68?t=574â–¾

here is probably a better demo and explanation
at 9:42 if it doesnt work
the first part, core settings, isnt so much quill recovery but can still be used for recovery purposes the second part (around 11:43) is the proper recovery ui it doesnt have too much options currently
c
The amount of effort that has been put in here is insane.
t
for the rest of the system, here is some nice graph made by szybet

https://github.com/PorQ-Pine/docs/blob/main/public/technical/graph.pngâ–¾

about 6 months, yes
c
Proper planning an everything
t
well, more or less, but yea
it runs fedora, but fedora is more like a subset, we made the real distro behind
fedora is in a chroot jail
c
We made a lot of those in project management last year, they're really useful. Awesome stuff.
t
well, its szybet's work
c
Ah true
team effort
t
i have less patience for docs
c
That's basically what I do as well.
t
at least i try to write readable rust code
c
Hahaha, yeah.
t
or idiomatic, at least
c
I've unsquashed the FS into the partition
t
good
sync
5 or 6 times
umount everything
and wait for pinenote to explode
c
moment of truth mate
t
also connect serial
we never know
if something happens you will see what is wrong
c
Nahhh bro this is awesome. First try.
t
it works?
c
Yeah
t
did it get you into oobe?
user setup?
c
Yeah, I'm doing it now
t
good
also please rate UI design
c
I'm not much of a UI designer. I'll try to be fair and honest.
t
well, no issues, i was just asking for general impression
c
Intuitive.
t
good
c
I have some feedback.
t
it is welcome
i know there are some issues with text boxes in the oobe
c
A display modes menu toggle would be useful in the top bar.
t
well, i agree
probably that szybet could add it
i dont have so much time this time of year
c
Next to the refresh icon on the left side would be good.
t
yes
@Szybet
c
I like the performance menu, very nice.
Also the screen modes, a lot of variation which I do appreciate a lot.
t
for xournal, you should try y1 and thresholding set to 12
also, maybe launch it with alacritty instead of the app icon, command
env -u WAYLAND_DISPLAY xournalpp
it should look less blurry
but ui will be a bit smaller
c
I like the cursor
t
also maybe try the fast modes, cursor is moving at 60fps+
c
xournalapp or xournalpp
t
xournalpp
c
thanks
t
also a heads up : the image i sent has ssh enabled by default on port 2222 (open, no password) for initrd and 22 for rootfs (password needed)
its made for development and debugging
so maybe just dont leave any sensitive info on it otherwise, there are ways to disable the ssh capability too
hm, and before you ask: there is no portrait mode for now. some issues with niri and DRM, idk too much
c
It's just going to be used for the demo
t
anyway thanks for wanting to demo it
hope you will enjoy the os in the meantime too
c
Thanks for helping me out getting it on my PineNote
One more thing I noticed was the lack of suspend implementation.
t
yes, well, suspend is hard to implement
also i think there are kernel issues currently
that make suspend not really worth it(i.e. its not saving much battery)
we were waiting on hrdl for that
c
Sweet as.
t
but it boots fast, so turning it off is not too much of a pain
sometimes i just leave it on in my backpack
c
Gotcha
2 Views