IRC channel logs

2017-06-11.log

back to list of logs

<catonano>hello guixers
<catonano>I spent offline most of today
<reepca>Question - when I move code from one module to another, should I bring along the copyright headers of everyone from the original module?
<OriansJ>rain1: well that does look interesting
<OriansJ>janneke: you'll find some fun to play with here https://github.com/oriansj/MESCC_Tools
<OriansJ>janneke, rain1: hopefully !token and %token are reasonable selections for 1byte and 4byte relative displacements respectively
<janneke>Morning Guix, OriansJ!
<janneke>OriansJ: thanks for the tools
<janneke>rain1: yes, having a target more nearby, sketching out a map sounds good
<Buglouse>when booting guixsd I see this error: "EXT4-fs Unrecognized mount option:"noatime" or missing value.
<Buglouse>initrd.scm has "datawriteback,noatime,nodiratime" for partition mount options, both / and /home are set to same fs, fs-options, and mount options. / is mpunted but /home has this error
<Buglouse>\\/datawriteback/data=writeback/
<Buglouse>\\/datawriteback/data=writeback/
<Buglouse>\\/datawriteback/data=writeback/
<Buglouse>( font is small thought equals was a different character)
<Buglouse>so I don't want to lose the boot fstab setting with noatime, my next step is to remove this option from initrd, I have more troubleshooting I just want to know if anybody has an initial thought?
<marusich>Buglouse, my only initial thought is: did it work before, and if so, what changed?
<Buglouse>no, first time installing guixsd, so still becoming familiar with system configuration
<Buglouse>but it's interesting to me that root mounts fine without any errors but then a second partition is mounted and errors occur; again I have more troubleshooting
<marusich>Hmmm... I'm sorry to hear that your first install is going badly. How have you set up your disks and partitions and file systems?
<Buglouse>how do I get to a functional run level one? Just a kernel and initrd, with root mounted, is this done with a kernel option?
<Buglouse>I'm getting more drunk by the minute so maybe this is not the best time to figure this out
<marusich>Bugs are generally harder to resolve while intoxicated :)
<marusich>I don't know the answer to your last question, I'm afraid.
<marusich>But since you haven't successfully booted before, the place I'd start is by asking myself: are my disks, my partitions, my file systems really set up correctly?
<marusich>To keep things simple, maybe start by trying a single-partition, single file system setup.
<Buglouse>1M EF02 bios boot. 200M EF00 EFI boot (syslinux). 5G 8300 EXT4 (journal_data_writeback, ^has_journal). 20G 8300 EXT4 (same opts).
<Buglouse>I've done this partition scheme many times before and it just seems to me I need to verify the mount version and its capabilities
<marusich>Right. GuixSD can handle multiple file systems and multiple partitions just fine, but the trick is making sure everything in the operating system configuration file is crafted correctly to match your configuration.
<marusich>So you have a root FS and a FS for your /home directory?
<Buglouse>yes
<marusich>Where are those file systems stored? e.g. /dev/sda5, /dev/sda1
<Buglouse>\\ /dev/sdb3 (/, root). /dev/sdb4 (/home, data). (path, label)
<Buglouse>maybe home is not being correctly identified maybe that's an option
<marusich>So /dev/sdb3 contains the root file system, and /dev/sdb4 contains the home file system, right?
<marusich>Is /dev/sdb mapped or encrypted in any way?
<Buglouse>I need to spend a little bit more time on this I was just wondering if the booting secondary partitions after is mounted would cause a difference I I guess I need understand the order more and what is called when
<Buglouse>no mapping/crypt
<marusich>And may I may I see what you put in your operating system configuration file?
<Buglouse>sd3/ sd4/home
<marusich>specifically the file-systems part
<Buglouse>\\/sd{3,4}/sdb{3,4}/
<Buglouse>\\/after is/after '/' is/
<Buglouse>sure, tmrw
<marusich>I suggest you look at this:
<marusich> https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/tests/install.scm#n236
<marusich>It's an operating system configuration file used in a system test. The test verifies that the system can be built and booted correctly, so the configuration is good.
<marusich>Your OS config file should look similar, since you have two file systems.
<marusich>Not identical, though - your home file system is not a tmpfs, after all :)
<marusich>Hope that helps!
<Buglouse>I really appreciate the link to the config, thank you for that. I want to try to change mounting options to exclude noatime and see where that leads me
<slim404>hello
<slim404>what is the right way to install my own fonts on guix sd?
<OriansJ>janneke: I'll be adding a definition file and some examples to that collection today (just going to be slow going over x86 binary representation gotchas)
<janneke>OriansJ: just mailed you, did you see?
<janneke>i just succeeded in using your hex2_linker to produce a working ELF, from mescc-compiled sources
<OriansJ>janneke: Just waking up, so still catching up on mail but that is excellent news
<OriansJ>janneke: actually you could use --BaseAddress 0x8048000 which would achieve the exact same result
<janneke>OriansJ: great! I knew there must have been something that I overlooked :-)
<OriansJ>but I am very excited by the result :D
<janneke>OriansJ: thanks, yes me too!
<OriansJ>you'll also notice --Architecture and --help
<OriansJ>--Architecture 0 is knight, 1 is x86 and 2 is amd64; because they calculate displacements differently
<OriansJ>janneke: there are also --BigEndian|--LittleEndian for dealing with the ugly case of different architectures needing different byte orders for written integers
<janneke>OriansJ: hmm, --BaseAddress does not work for me
<janneke>../MESCC_Tools/bin/hex2 -f stage0/elf32.hex2 -f out/mlibc/mini-libc-mes.guile-o -f out/scaffold/hello.guile-o --LittleEndian --Architecture 1 --BaseAddress 0x8048000 > a.out
<janneke>with or without --BaseAddress only produces a working a.out with my silly BASE patch applied
<janneke>can i leave that to you to test and figure out [later]?
<OriansJ>janneke: actually I'll make it a test case in the tools,
<OriansJ>janneke: could you throw those into a test folder and do a pull request?
<janneke>OriansJ: i need a bit more context; which project, what folder, which files? ;-)
<OriansJ>janneke: pull request https://github.com/oriansj/MESCC_Tools, make a folder called test, add the files stage0/elf32.hex2 out/mlibc/mini-libc-mes.guile-o out/scaffold/hello.guile-o
<OriansJ>janneke: I'll then merge the pull request, figure out the problem, patch it, create a test target for it and then document it
<OriansJ>janneke: also I gave you collaborator permissions to the https://github.com/oriansj/MESCC_Tools repo, so you'll be able to push any changes you wish in the future directly
<janneke>OriansJ: OK, thanks. working on it -- pull request soon
<janneke>OriansJ: feel free to modify anything i add to make it to your liking
<OriansJ>janneke: thank you
<janneke>OriansJ: yw...i didn't intend to get my ugly hack pulled in, i committed and pushed in after producing the pull request?
<janneke>ACTION hasn't been using github for some years now
<janneke>*pushed it
<janneke>oh well
<OriansJ>janneke: no worries and I think I found the root of the bug
<janneke>OriansJ: good
<OriansJ>Base_Address = atoi(optarg); is converting 0x8048000 to simply 0
<janneke>'doh
<janneke>sounds like an honest bug
<OriansJ>I'll fix that, verify the test and add a couple minor changes and we should be able to remove that ugly hax shortly
<janneke>yay!
<rain1>good morning
<janneke>morning rain!
<janneke>morning rain1!
<rain1>that's awesome about the hex2_linker!
<janneke>rain1: yeah...what's also new is that i've been playing with adding annotations/comments to mescc's hex2 output -- so with just a little bit of work we can now produce annotated hex2 for mes's Scheme interpreter :-)
<OriansJ>janneke: bug fixed, patches will be up shortly
<janneke>rain1: i very much hlike your idea of targeting something easier than tcc.c (8cc, cc500)
<janneke>OriansJ: great...what's next? i'm working to simplify all the label translations in mescc and finally greatly simplify mescc by removing offset calculations, replacing them with simple labels
<OriansJ>janneke: well I'll be making a M0-macro example which might enable you to eliminate the need to output hex values
<OriansJ>janneke, rain1: the freshly improved hex2_linker is up along with a few minor tweaks to allow the cleaner importing of tests
<janneke>oh yes, that will also help to greatly simplify mescc
<OriansJ>janneke: hopefully you approve of my changes
<janneke>OriansJ: they're beautiful, thanks
<Ox539>Bonjour, j’espère que quelqu’un parle français. Comment fait-on pour changer la disposition du clavier dans SLIM ?
<quiliro>Ox539: je ne çe pas
<quiliro>chercher man slim?
<efraim>I know we have lighdm packaged, I'm not sure how to change to lightdm or to change the language of SLiM, maybe there's a configure flag
<efraim>s/configure/service/
<efraim> https://www.gnu.org/software/guix/manual/html_node/X-Window.html#X-Window I don't see anything obvious
<OriansJ>just a minor warning janneke in x86 loading a 32bit immediate and a 16bit immediate share the exact same opcodes and will behave differently based on CPU mode. (either loading half and trying to execute the other half or treating the first 2 bytes of the next instruction as immediate values and then executing something you do not expect)
<janneke>OriansJ: i wasn't aware of any such things
<janneke>so we probably need to set cpu-mode?
<janneke>i think i always load 32 bits -- did wonder why there was no way to load less than 4 byte immediate values
<OriansJ>janneke: 32bit protected mode is the default you are using, fortunately unless you want to deal with 16bit realmode you can ignore the difference
<janneke>OriansJ: ah, OK
<OriansJ>janneke: if you wanted to load an 8bit number, you would have to specify the 8bit of the register (al instead of rax, etc)
<mekeor>when i press the 'power' key of my laptop, it shuts down. when i press the 'suspend' function-key of my laptop, it suspends. where is this behaviour specified?
<janneke>OriansJ: ah, right -- guess that makes sense
<janneke>mekeor: i'm not sure, what does `git grep suspend' say?
<OriansJ>You'll see that and a bunch of other really odd things like ah, bh, ch and dh, which set the high byte of the registers but that high byte is in the bottom 16bits
<mekeor>janneke: indeed, there are interesting matches. thanks so far :)
<mekeor>janneke: ... seems like it's defined in the elogind configuration in services/desktop
***in0rdr_ is now known as help
<janneke>OriansJ: how weird -- i managed to stay away from intel assembly until ~1 year ago ... and some bits of me still want to remain ignorant until we can go somewhere else ;-)
***help is now known as Guest83575
<janneke>mekeor: ah, that makes sense
<janneke>wingo to the rescue ;-)
<mekeor>it's even in the docs a.k.a. `handle-suspend-key` :)
<rain1>I am hoping for risc v computers soon :D
***Guest83575 is now known as in0rdr
<janneke>mekeor: that always has amazed me: once you find something, you start to see other ways pointing at the same thing and wonder how you could have missed it
<mekeor>ACTION doesn't know what ‘wingo’ and ‘risc v computers’ are
<rain1>risc v is a new open instruction set
<janneke>wingo is one of the guile maintainers who mostly writes amazing things that are too difficult for others
<mekeor>rain1: oh, so the special thing about risc v is that it's *open*, i guess?
<mekeor>ah, i see: “andy wingo” :)
<janneke>he forked elogind away from systemd or something
<mekeor> https://github.com/wingo/elogind
<OriansJ>janneke: I as a general rule, try to avoid the eternal hellfire that is x86 binary encoding problems. That being said, RISCV has the problem of you need a C compiler to write an assembler, due to its funky bit fields
<rain1>mekeor: yep it's quite exciting, maybe in the future we can build guix for it :D
<OriansJ>janneke: that reminds me, did you also want me to include the instructions that do segment register manipulation?
<janneke>OriansJ: no, we don't need those [yet]
<OriansJ>janneke: ok, you'll be able to see the definitions I've done thus far here: https://github.com/oriansj/MESCC_Tools/blob/master/x86_defs
<janneke>OriansJ: do you think we should close the bootstrap loop from stage0 up to mescc already using x86 hex and attempt to create an alternative guixsd bootstrap path?
<janneke>i mean, before moving from x86 to M0?
<janneke>oh -- haha, you're already working on that :-D
<OriansJ>janneke: This hopefully is the last time, I'll EVER have to dive into x86/amd prefix coding and opcode override details
<quiliro>how can i install grub on a guixsd installation i made from debian on an EFI machine?
<quiliro>it will not recognize the guixsd partition
<quiliro>any idea how to install grub to recognize it?
<davidl>quiliro: https://www.gnu.org/software/guix/manual/html_node/GRUB-Configuration.html#GRUB-Configuration
<davidl>quiliro: it says that the default grub-package to use is grub, not grub-efi so that needs to be changed to begin with I believe.
<Ox539>Je n’ai pas réussi à résoudre mon problème, peut-être faut-il changer la configuration de X directement pour avoir la disposition que je souhaite. Quelqu’un sait comment faire cela ?
<OriansJ>janneke, rain1: hopefully the pattern for opcode mnemonics for x86 in M0 are pleasing
<quiliro>davidl: thank-you
<quiliro>will test now
<janneke>OriansJ, rain1: hehe
<OriansJ>janneke: ???
<janneke>OriansJ: well, if they're not pleasing at least two of us are going to suffer ;-)
<janneke>ACTION was thinking about the process of changing mescc's i386 into M0...
<OriansJ>janneke: the M0 upgrade for mescc can be adopted after we fix all the bugs in HEX2 processing
<quiliro>davidl: i don't know where to put menu-entry
<quiliro>i have a bare-bones.scm
<quiliro>i get:
<quiliro>/gnu/store/417f7dl5dq1249fnnp0mzwj7xyszyqyp-grub-2.02/sbin/grub-install: error: /gnu/store/417f7dl5dq1249fnnp0mzwj7xyszyqyp-grub-2.02/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.
<quiliro>guix system: error: failed to install bootloader on device /gnu/store/0x7sln6aay56yc8pii4yz9gpj5zshiz9-bootloader-installer '/dev/sda'
<davidl>quiliro: (grub-configuration (grub grub-efi)
<davidl> (device "/dev/sda"))y
<davidl>quiliro: I believe that will work.
<janneke>OriansJ: the first label unification is done, i'm now looking at replacing offset calculations with labels
<quiliro>davidl: i just found that guix-efi is available
<quiliro>i am installing it
<quiliro>and will test guix system init
<davidl>ok nice.
<quiliro>to see if it will install grub
<quiliro>same error
***jonsger1 is now known as jonsger
<quiliro>grub-install: error: grub-2.02/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory
<quiliro>basic stuff pasted only
<OriansJ>janneke: excellent work
<quiliro>why is it missing?
<quiliro>davidl: guix system: error: failed to load '/mnt/etc/bare-bones.scm':
<quiliro>/mnt/etc/bare-bones.scm:6:5: In procedure #<procedure 47f5b00 ()>:
<quiliro>/mnt/etc/bare-bones.scm:6:5: In procedure module-lookup: Unbound variable: grub-efi
<davidl>Did you put: (bootloader (grub-configuration (grub grub-efi) (device "/dev/sda"))) in bare-bones.scm?
<davidl>Now I did "guix package --search=grub-efi" and it says that the Location of that package is bootloaders.scm so you could try entering that in package-modules section.
<davidl>quiliro: Another option that I saw in the archive is to use: (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (device "/dev/sda")))
<quiliro>(bootloader (grub-configuration (grub grub-efi) (device "/dev/sda")))
<davidl>quiliro: are you still using a script for the installation?
<quiliro>perhaps that is the problem
<quiliro>yes
<davidl>ok.
<quiliro>so what do you recommend?
<quiliro>entering that in package-modules section?
<davidl>I would add bootloaders.scm in package-modules section and go with the grub-configuration line and if that doesn't work I would use bootloader-configuration instead.
<quiliro>i do not have that file
<davidl>can you paste your config?
<quiliro>sure..give me a minute
<davidl>quiliro: a little bash alias trick for fast pasting: paste_sprunge(){ cat $1 | curl -F 'sprunge=<-' http://sprunge.us }
<quiliro> http://sprunge.us/LHMP
<quiliro>davidl: how is that trick used?
<quiliro>be back after reboot
<davidl>quiliro: just source ~/.bashrc and then to paste a text-file: paste_sprunge file.txt
<quiliro>davidl: how should i modify bare-bones.scm
<quiliro>?
<davidl>just add "bootloaders" to package modules next to admin.
<davidl>quiliro: that's what I would try at least.
<quiliro>davidl: working now!
<davidl>\\o/
<quiliro>lets hope grub is installed
<quiliro>/gnu/store/60g864h52svnm5f8fp40sla4j1g6v921-grub-efi-2.02/sbin/grub-install: error: cannot find EFI directory.
<quiliro>guix system: error: failed to install bootloader on device /gnu/store/0qxsqda9qxm2fwssmazc08by1ijgq225-bootloader-installer '/dev/sda'
<quiliro>but efi directory is mounted in /boot/efi
<quiliro>davidl: what do you suggest?
<janneke>got my first while loop (in strlen) using labels iso calculated offsets done!
<janneke>first small step, much more work to do
<solene>hello, I'm using guix on a foreign distro. If I want to create a new package a commit it, what's the best way ? i've read on the mailing list that using guix pull was bad compared to using guix with git but I have no idea how to use guix from the git clone
<davidl>quiliro: here's a more extensive example that I found in the mailing list archive that you could probably adapt and use - http://sprunge.us/KSKH
<quiliro>davidl: just switches to: (device "/dev/sda") (grub grub-efi)
<quiliro>instead of (grub grub-efi) (device "/dev/sda")
<quiliro>but it will give error:
<quiliro>/mnt/etc/bare-bones.scm:15:19: error: extraneous field initializers (grub)
<quiliro>must specify the efi directory
<quiliro>sbin/grub-install: error: cannot find EFI directory.
<davidl>here's a recent thread about the issue: https://lists.gnu.org/archive/html/help-guix/2017-04/msg00119.html
<davidl>I need help to get Xorg working on one of my laptop with GuixSD. The install is successful but slim doesn't start. My Xorg.0.log is here if anyone wanna help: http://sprunge.us/WNGa
<quiliro>davidl: systemd?
<davidl>quiliro: what do you mean?
<quiliro>davidl: i think i have to define the efi partition on (file-systems
<quiliro>davidl: why is systemd on your messages
<quiliro>?
<davidl>I don't know but I believe it has to do with that I installed Gnome on it.
<quiliro>elogind
<quiliro>guix package -s systemd
<quiliro>davidl: "logind integration requires -keeptty and -keeptty was not provided"
<quiliro>i would investigate that
<davidl>ok.
<quiliro>changed (grub grub-efi) to (grub (specification->package "grub-efi"))
<quiliro>it is on the works now
<quiliro>let's see if it installs grub
<quiliro>grub-install: error: cannot find EFI directory.
<quiliro>same error
<davidl>just move that directory also
<quiliro>?
<davidl>it says how to in the email thread.
<quiliro>it says it should not be done
<quiliro>/gnu/store is not to be touched
<quiliro>and is not the same problem i have
<ennoausberlin>Hello. I ran into efi problems as well. How do I specify that grub-efi is used?
<davidl>actually, I don't know how they did it there since /gnu/store is read-only.
<quiliro>ennoausberlin: check my scm
<ennoausberlin>I get unbound variable if I put (grub grub-efi) into grub-configuration
<quiliro> http://sprunge.us/SCXa
<davidl>quiliro: I think you can force-copy on /gnu/store - you have nothing to lose.
<quiliro>i used (grub grub-efi) too
<ennoausberlin>quiliro I see
<quiliro>i would rather not
<quiliro>ennoausberlin: but you might test the other parts
<davidl>The safest approach to a native UEFI GuixSD system currently is booting
<davidl>another UEFI enabled Linux image, installing the Guix binary inside the
<davidl>live environment, and do `guix system init` from there. It's pretty
<davidl>involved, but we hope to have UEFI support in the official images Soon™.
<quiliro>i did exactly that
<quiliro>but they said that before they included uefi support on guix
<methalo>what is the function of '%guile-static-stripped' ?