I've tried to get AHCI to work several times. With the new AHCI driver (I updated Genode today), I thought it would finally work. It discovers my devices correctly (2 ATA and one ATAPI), and my configuration is good. (I've updated it and tested an almost identical scenario in Qemu.) I've tried it on both Nova and Fiasco.OC (Nova's pci_device_pd gave me an error: "assignment of PCI device failed") Any ideas what to do now?
Hi,
Thanks for your persistence regarding this subject. Please provide more information (log, config, run script) for the current issue (and in the future).
Greets
Here's the output from Fiasco.OC. My test, test-blk-cli-nowrite, should read from my SSD, and give output similar to test-blk-cli, but it doesn't. Note that it works in Qemu.
Bender: Hello World. Need 06a96000 bytes to relocate modules. Relocating to 7956a000: Copying 10485760 bytes... Copying 7558864 bytes... Copying 14463248 bytes... Copying 7118464 bytes... Copying 8346872 bytes... Copying 6123064 bytes... Copying 6853608 bytes... Copying 1298720 bytes... Copying 6721728 bytes... Copying 6645048 bytes... Copying 6341296 bytes... Copying 6395352 bytes... Copying 6024024 bytes... Copying 6637760 bytes... Copying 1871 bytes... Copying 8878520 bytes... Copying 404264 bytes... Copying 695472 bytes... Copying 728940 bytes...
L4 Bootstrapper Build: #1 Wed May 27 02:30:51 UTC 2015, x86-64, 4.9.2 RAM: 0000000000000000 - 000000000009e7ff: 634kB RAM: 0000000000100000 - 00000000be10ffff: 3113024kB RAM: 00000000bee5d000 - 00000000bee5dfff: 4kB RAM: 00000000bf064000 - 00000000bf462fff: 4092kB RAM: 00000000bf7f3000 - 00000000bf7fffff: 52kB RAM: 0000000100001000 - 000000043effffff: 13615100kB Total RAM: 16340MB Moving up to 18 modules behind 1100000 moving module 00 { 7961c000-796c5caf } -> { 7ffff000-800a8caf } [695472] moving module 01 { 796c6000-79728b27 } -> { 800a9000-8010bb27 } [404264] moving module 02 { 79729000-79fa09b7 } -> { 8010c000-809839b7 } [8878520] moving module 03 { 79fa1000-79fa174e } -> { 1100000-110074e } [1871] moving module 04 { 79fa2000-7a5f68bf } -> { 1101000-17558bf } [6637760] moving module 05 { 7a5f7000-7abb5b57 } -> { 1756000-1d14b57 } [6024024] moving module 06 { 7abb6000-7b1cf5d7 } -> { 1d15000-232e5d7 } [6395352] moving module 07 { 7b1d0000-7b7dc2af } -> { 232f000-293b2af } [6341296] moving module 08 { 7b7dd000-7be33537 } -> { 293c000-2f92537 } [6645048] moving module 09 { 7be34000-7c49d0bf } -> { 2f93000-35fc0bf } [6721728] moving module 10 { 7c49e000-7c5db11f } -> { 35fd000-373a11f } [1298720] moving module 11 { 7c5dc000-7cc653e7 } -> { 373b000-3dc43e7 } [6853608] moving module 12 { 7cc66000-7d23ce37 } -> { 3dc5000-439be37 } [6123064] moving module 13 { 7d23d000-7da32cf7 } -> { 439c000-4b91cf7 } [8346872] moving module 14 { 7da33000-7e0fce7f } -> { 4b92000-525be7f } [7118464] moving module 15 { 7e0fd000-7eec810f } -> { 525c000-602710f } [14463248] moving module 16 { 7eec9000-7f5fe6cf } -> { 6028000-675d6cf } [7558864] moving module 17 { 7f5ff000-7fffefff } -> { 675e000-715dfff } [10485760] Scanning /fiasco/fiasco -serial_esc Scanning /fiasco/sigma0 Scanning /stage1/core Bootloader MMAP: [ 0, 9e800) RAM (1) [ 9e800, a0000) reserved (2) [ e0000, 100000) reserved (2) [ 100000, be110000) RAM (1) [ be110000, be4e0000) reserved (2) [ be4e0000, be8cf000) ACPI NVS (4) [ be8cf000, bee5d000) reserved (2) [ bee5d000, bee5e000) RAM (1) [ bee5e000, bf064000) ACPI NVS (4) [ bf064000, bf463000) RAM (1) [ bf463000, bf7f3000) reserved (2) [ bf7f3000, bf800000) RAM (1) [ fec00000, fec01000) reserved (2) [ fec10000, fec11000) reserved (2) [ fec20000, fec21000) reserved (2) [ fed00000, fed01000) reserved (2) [ fed61000, fed71000) reserved (2) [ fed80000, fed90000) reserved (2) [ fef00000, 100000000) reserved (2) [100001000, 43f000000) RAM (1) Relocated mbi to [0x2de000-0x2de5a0] Loading /fiasco/fiasco Loading /fiasco/sigma0 Loading /stage1/core find kernel info page... found kernel info page at 0x400000 Regions of list 'regions' [ 0, fff] { 1000} Arch BIOS [ 1000, 1fff] { 1000} Kern /fiasco/fiasco [ 9e800, 9ffff] { 1800} Arch BIOS [ e0000, fffff] { 20000} Arch BIOS [ 100000, 10c31f] { c320} Sigma0 /fiasco/sigma0 [ 2d0080, 2e51c7] { 15148} Boot bootstrap [ 2de000, 2de69d] { 69e} Root Multiboot info [ 300000, 34afff] { 4b000} Kern /fiasco/fiasco [ 400000, 4b4fff] { b5000} Kern /fiasco/fiasco [ 500000, 74060f] { 240610} Root /stage1/core [ 1013000, 10a8fff] { 96000} Boot bootstrap-ptab64 [ 1100000, 715dfff] { 605e000} Root Module [ be110000, be4dffff] { 3d0000} Arch BIOS [ be4e0000, be8cefff] { 3ef000} Arch BIOS [ be8cf000, bee5cfff] { 58e000} Arch BIOS [ bee5e000, bf063fff] { 206000} Arch BIOS [ bf463000, bf7f2fff] { 390000} Arch BIOS [ fec00000, fec00fff] { 1000} Arch BIOS [ fec10000, fec10fff] { 1000} Arch BIOS [ fec20000, fec20fff] { 1000} Arch BIOS [ fed00000, fed00fff] { 1000} Arch BIOS [ fed61000, fed70fff] { 10000} Arch BIOS [ fed80000, fed8ffff] { 10000} Arch BIOS [ fef00000, ffffffff] { 1100000} Arch BIOS API Version: (87) experimental Sigma0 config ip:0000000000101164 sp:00000000002e2040 Roottask config ip:0000000000500000 sp:0000000000000000 Starting kernel /fiasco/fiasco at 0000000000300960
Welcome to Fiasco.OC (amd64)! L4/Fiasco.OC amd64 microkernel (C) 1998-2013 TU Dresden Rev: 03bf8ed compiled with gcc 4.9.2 for AMD Opteron [] Build: #1 Wed May 27 02:30:31 UTC 2015
Performance-critical config option(s) detected: CONFIG_NDEBUG is off
Superpages: yes Kmem:: cpu page at 43efe6000 (4096Bytes) Per_cpu_data_alloc: (orig: 0xfffffffff009ed00-0xfffffffff009f8f8) OSVW_MSR1 = 0x0000000000000010 #Errata known 5, affected by at least one ACPI-Init ACPI: RSDP[0xf0490] r02 OEM:ALASKA ACPI: XSDT[0x200bf078] r01 OEM:ALASKA OEMTID:A.M.I... ACPI: FACP[0x200c52a0] r05 OEM:ALASKA OEMTID:A.M.I... ACPI: APIC[0x200c53b0] r03 OEM:ALASKA OEMTID:A.M.I... ACPI: FPDT[0x200c5450] r01 OEM:ALASKA OEMTID:A.M.I... ACPI: MCFG[0x200c5498] r01 OEM:ALASKA OEMTID:A.M.I... ACPI: AAFT[0x200c54d8] r01 OEM:ALASKA OEMTID:OEMAAFT. ACPI: HPET[0x200c5540] r01 OEM:ALASKA OEMTID:A.M.I... ACPI: SSDT[0x200c5578] r01 OEM:AMD... OEMTID:POWERNOW ACPI: IVRS[0x200c6c90] r01 OEM:AMD... OEMTID:RD890S.. ACPI: BGRT[0x200c6d60] r00 OEM:ALASKA OEMTID:A.M.I... IO-APIC: MADT = 0x200c53b0 IO-APIC[ 0]: struct: 0x200c541c adr=fec00000 IO-APIC[ 0]: pins 24 PIN[ 0m]: vector=20, del=0, dm=physical, dest=0 (high, edge) PIN[ 1m]: vector=21, del=0, dm=physical, dest=0 (high, edge) PIN[ 2m]: vector=22, del=0, dm=physical, dest=0 (high, edge) PIN[ 3m]: vector=23, del=0, dm=physical, dest=0 (high, edge) PIN[ 4m]: vector=24, del=0, dm=physical, dest=0 (high, edge) PIN[ 5m]: vector=25, del=0, dm=physical, dest=0 (high, edge) PIN[ 6m]: vector=26, del=0, dm=physical, dest=0 (high, edge) PIN[ 7m]: vector=27, del=0, dm=physical, dest=0 (high, edge) PIN[ 8m]: vector=28, del=0, dm=physical, dest=0 (high, edge) PIN[ 9m]: vector=29, del=0, dm=physical, dest=0 (high, edge) PIN[10m]: vector=2a, del=0, dm=physical, dest=0 (high, edge) PIN[11m]: vector=2b, del=0, dm=physical, dest=0 (high, edge) PIN[12m]: vector=2c, del=0, dm=physical, dest=0 (high, edge) PIN[13m]: vector=2d, del=0, dm=physical, dest=0 (high, edge) PIN[14m]: vector=2e, del=0, dm=physical, dest=0 (high, edge) PIN[15m]: vector=2f, del=0, dm=physical, dest=0 (high, edge) PIN[16m]: vector=30, del=0, dm=physical, dest=0 (high, edge) PIN[17m]: vector=31, del=0, dm=physical, dest=0 (high, edge) PIN[18m]: vector=32, del=0, dm=physical, dest=0 (high, edge) PIN[19m]: vector=33, del=0, dm=physical, dest=0 (high, edge) PIN[20m]: vector=34, del=0, dm=physical, dest=0 (high, edge) PIN[21m]: vector=35, del=0, dm=physical, dest=0 (high, edge) PIN[22m]: vector=36, del=0, dm=physical, dest=0 (high, edge) PIN[23m]: vector=37, del=0, dm=physical, dest=0 (high, edge) IO-APIC[ 1]: struct: 0x200c5428 adr=fec20000 IO-APIC[ 1]: pins 32 PIN[ 0m]: vector=20, del=0, dm=physical, dest=0 (high, edge) PIN[ 1m]: vector=21, del=0, dm=physical, dest=0 (high, edge) PIN[ 2m]: vector=22, del=0, dm=physical, dest=0 (high, edge) PIN[ 3m]: vector=23, del=0, dm=physical, dest=0 (high, edge) PIN[ 4m]: vector=24, del=0, dm=physical, dest=0 (high, edge) PIN[ 5m]: vector=25, del=0, dm=physical, dest=0 (high, edge) PIN[ 6m]: vector=26, del=0, dm=physical, dest=0 (high, edge) PIN[ 7m]: vector=27, del=0, dm=physical, dest=0 (high, edge) PIN[ 8m]: vector=28, del=0, dm=physical, dest=0 (high, edge) PIN[ 9m]: vector=29, del=0, dm=physical, dest=0 (high, edge) PIN[10m]: vector=2a, del=0, dm=physical, dest=0 (high, edge) PIN[11m]: vector=2b, del=0, dm=physical, dest=0 (high, edge) PIN[12m]: vector=2c, del=0, dm=physical, dest=0 (high, edge) PIN[13m]: vector=2d, del=0, dm=physical, dest=0 (high, edge) PIN[14m]: vector=2e, del=0, dm=physical, dest=0 (high, edge) PIN[15m]: vector=2f, del=0, dm=physical, dest=0 (high, edge) PIN[16m]: vector=30, del=0, dm=physical, dest=0 (high, edge) PIN[17m]: vector=31, del=0, dm=physical, dest=0 (high, edge) PIN[18m]: vector=32, del=0, dm=physical, dest=0 (high, edge) PIN[19m]: vector=33, del=0, dm=physical, dest=0 (high, edge) PIN[20m]: vector=34, del=0, dm=physical, dest=0 (high, edge) PIN[21m]: vector=35, del=0, dm=physical, dest=0 (high, edge) PIN[22m]: vector=36, del=0, dm=physical, dest=0 (high, edge) PIN[23m]: vector=37, del=0, dm=physical, dest=0 (high, edge) PIN[24m]: vector=38, del=0, dm=physical, dest=0 (high, edge) PIN[25m]: vector=39, del=0, dm=physical, dest=0 (high, edge) PIN[26m]: vector=3a, del=0, dm=physical, dest=0 (high, edge) PIN[27m]: vector=3b, del=0, dm=physical, dest=0 (high, edge) PIN[28m]: vector=3c, del=0, dm=physical, dest=0 (high, edge) PIN[29m]: vector=3d, del=0, dm=physical, dest=0 (high, edge) PIN[30m]: vector=3e, del=0, dm=physical, dest=0 (high, edge) PIN[31m]: vector=3f, del=0, dm=physical, dest=0 (high, edge) IO-APIC: dual 8259: yes IO-APIC: ovr[ 0] 00 -> 2 IO-APIC: ovr[ 1] 09 -> 9 Allocate cpu_mem @ 0xfffffffffffe9400 FPU0: SSE AVX Local APIC[10]: version=10 max_lvt=5 APIC ESR value before/after enabling: 00000000/00000000 Using the Local APIC timer on vector 90 (Periodic Mode) for scheduling SERIAL ESC: Using serial hack in slow timer handler. SERIAL ESC: No IRQ for specified uart port. Using serial hack in slow timer handler. Enable MSI support: chained IRQ mgr @ 0xfffffffffffe9350 CPU[0]: AuthenticAMD (15:2:0:0)[00600f20] Model: AMD FX(tm)-8320 Eight-Core Processor at 3492MHz
48/512 Entry I TLB (4K pages) 24/512 Entry I TLB (4M pages) 64/1024 Entry D TLB (4K pages) 64/1024 Entry D TLB (4M pages) 64 KB L1 I Cache (2-way associative, 64 bytes per line) 16 KB L1 D Cache (4-way associative, 64 bytes per line) 2048 KB L2 U Cache (8-way associative, 64 bytes per line) 8192 KB L3 U Cache (12-way associative, 64 bytes per line)
Freeing init code/data: 24576 bytes (6 pages)
Per_cpu_data_alloc: (orig: 0xfffffffff009ed00-0xfffffffff009f8f8) Allocate 3064 bytes (3KB) for CPU[4] local storage (offset=fd34300, 0xffffffffffdd3000-0xffffffffffdd3bf8) MP: detecting APs... Per_cpu_data_alloc: (orig: 0xfffffffff009ed00-0xfffffffff009f8f8) Calibrating timer loop... Allocate 3064 bytes (3KB) for CPU[1] local storage (offset=fd35300, 0xffffffffffdd4000-0xffffffffffdd4bf8) done. SIGMA0: Hello! KIP @ 400000 allocated 4KB for maintenance structures SIGMA0: Dump of all resource maps RAM:------------------------ [0:2000;9dfff] [0:10d000;2ddfff] [4:2de000;2defff] [0:2df000;3fffff] OSVW_MSR1 = 0x0000000000000010 #Errata known 5, affected by at least one [Allocate cpu_mem @ 0xffffffffffd7e000 0Local APIC[13]: version=10 max_lvt=5 :4af000;4fffff] [4:500000;740fff] [0:741000;10fffff] [4:1100000;715dfff] [0:715e000;be10ffff] [0:bee5d000;bee5dfff] [0:bf064000;bf462fff] [0:bf7f3000;bf7fffff] [0:100001000;43b3fffff] IOMEM:---------------------- APIC ESR value before/after enabling: 00000000/00000000 [Using the Local APIC timer on vector 90 (Periodic Mode) for scheduling :ram_alloc: Allocator 72a200 dump: Block: [00002000,00002038) size=00000038 avail=00000000 max_avail=00000000 Block: [00002038,00002070) size=00000038 avail=00000000 max_avail=00000000 Block: [00002070,000020a8) size=00000038 avail=00000000 max_avail=00000000 Block: [000020a8,000020e0) size=00000038 avail=00000000 max_avail=00000000ffffffd40000-0xffffffffffd40bf8) Block: [000020e0,00002118) size=00000038 avail=00000000 max_avail=00000000 Block: [00002118,00002150) size=00000038 avail=00000000 max_avail=00000000 Block: [00002150,00002950) size=00000800 avail=00000000 max_avail=00000000 Block: [00002950,00002988) size=00000038 avail=00000000 max_avail=00000000 Block: [00002988,000029c0) size=00000038 avail=00000000 max_avail=001d0f58 Block: [000029c0,000029f8) size=00000038 avail=00000000 max_avail=00000000 :core ranges: Allocator 72f0f0 dump:00038 avail=00000000 max_avail=00000000 Block: [00002000,0009e000) size=0009c000 avail=0009c000 max_avail=0009c000 Block: [0010d000,002de000) size=001d1000 avail=001d1000 max_avail=001d1000 Block: [002df000,00400000) size=00121000 avail=00121000 max_avail=3fb51000 Block: [004af000,40000000) size=3fb51000 avail=3fb51000 max_avail=3fb51000 Block: [50000000,be110000) size=6e110000 avail=6e110000 max_avail=33b3ff000 Block: [bee5d000,bee5e000) size=00001000 avail=00001000 max_avail=00001000 Block: [bf064000,bf463000) size=003ff000 avail=003ff000 max_avail=33b3ff000 Block: [bf7f3000,bf800000) size=0000d000 avail=0000d000 max_avail=33b3ff000 Block: [100001000,43b400000) size=33b3ff000 avail=33b3ff000 max_avail=33b3ff000 => mem_size=16802361344 (16023 MB) / mem_avail=16802361344 (16023 MB)bef90 Genode 15.055e000,0715e038) size=00000038 avail=00000000 max_avail=00000000 int main(): --- create local services --- avail=38ea1fc8 max_avail=6e110000 int main(): --- start init ---ze=6e110000 avail=6e110000 max_avail=6e110000 int main(): transferred 15924 MB to init0 avail=00001000 max_avail=33b3ff000 int main(): --- init created, waiting for exit condition ---_avail=003ff000 [init] parent provides0000) size=0000d000 avail=0000d000 max_avail=33b3ff000 [init] service "ROM"400000) size=33b3ff000 avail=33b3ff000 max_avail=33b3ff000 [init] service "LOG"32 (15925 MB) / mem_avail=16698946688 (15925 MB) [init] service "CAP"or 72c4c0 dump: [init] service "RAM"2000) size=00001000 avail=00001000 max_avail=00001000 [init] service "RM"0d000) size=0006f000 avail=0006f000 max_avail=0006f000 [init] service "CPU"f000) size=000ae000 avail=000ae000 max_avail=00d4d000 [init] service "PD"5d000) size=00d4d000 avail=00d4d000 max_avail=00d4d000fffffcfd000-0xffffffffffcfdbf8) [init] service "IRQ"4000) size=00206000 avail=00206000 max_avail=7ffbc4c00000 [init] service "IO_PORT") size=00390000 avail=00390000 max_avail=00390000 [init] service "IO_MEM"00) size=40801000 avail=40801000 max_avail=7ffbc4c00000 [init] service "SIGNAL"000000) size=7ffbc4c00000 avail=7ffbc4c00000 max_avail=7ffbc4c00000 [init] child "acpi"417546240 (134201448 MB) / mem_avail=140720417546240 (134201448 MB) [init] RAM quota: 6119424mp:ector 90 (Periodic Mode) for scheduling [init] ELF binary: acpi_drvize=00002000 avail=00002000 max_avail=00002000 [init] priority: 0d000) size=0006f000 avail=0006f000 max_avail=0006f000 [init] provides service PCIize=000ae000 avail=000ae000 max_avail=00d4d000 [init] provides service IRQize=00d4d000 avail=00d4d000 max_avail=00d4d000 [init] child "timer"064000) size=00206000 avail=00206000 max_avail=fffffffbc4bfffff [init] RAM quota: 876544 size=00390000 avail=00390000 max_avail=00390000 [init] ELF binary: timer0) size=40801000 avail=40801000 max_avail=fffffffbc4bfffff [init] priority: 0fffffffffffff) size=fffffffbc4bfffff avail=fffffffbc4bfffff max_avail=fffffffbc4bfffff [init] provides service Timer23 (17592186028136 MB) / mem_avail=18446744056638746623 (17592186028136 MB) [init] child "rom_blk"b360 dump: [init] RAM quota: 33382400ize=00010000 avail=00010000 max_avail=00010000 [init] ELF binary: rom_blkmem_avail=65536 (0 MB) [init] priority: 0 dump:mp.lib.so [init] provides service Blocke=00000038 avail=00000038 max_avail=00000038 Quota exceeded! amount=24576, size=4096, consumed=24576 [init] upgrading quota donation for Env::CPU (8192 bytes) [init] child "ahci_drv"0) part_blk [init] RAM quota: 10313728romrv [init] ELF binary: ahci_drvi_drvv [init] priority: 080) acpi_drv [init] provides service Blockgdrv [init] Could not open ROM session for module "test-blk-cli-nowrite" [init -> acpi] available memory for ACPI 2048 kiB, for PCI_DRV 3348 kiB [init -> ahci_drv] --- Starting AHCI driver -> done right .-) -- [init] child "rom_blk" announces service "Block" [init] child "timer" announces service "Timer" [init -> acpi] void Acpi_table::_parse_tables(T*, Genode::uint32_t) [with T = long long unsigned int; Genode::uint32_t = unsigned int]: Found MADT [init -> acpi] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi] MADT IRQ 9 -> GSI 9 flags: f [init -> acpi] void Acpi_table::_parse_tables(T*, Genode::uint32_t) [with T = long long unsigned int; Genode::uint32_t = unsigned int]: Found MCFG [init -> acpi] MCFG BASE 0xe0000000 seg 00 bus 00-ff [init -> acpi -> pci_drv] PCI driver started [init -> acpi -> pci_drv] Could not open ROM session for module "pci_device_pd" [init -> acpi -> pci_drv] PCI device protection domain for IOMMU support is not available [init -> acpi -> pci_drv] 00 BDF start 0, functions: 0x10000, physical base 0xe0000000 [init -> acpi] ACPI table format is supported - rewrite GSIs [init -> acpi] Rewriting 01:00.0 IRQ: 10 -> GSI: 24 [init -> acpi] Rewriting 01:00.1 IRQ: 11 -> GSI: 25 [init -> acpi] Rewriting 02:00.0 IRQ: 10 -> GSI: 48 [init -> acpi] Rewriting 03:05.0 IRQ: 10 -> GSI: 20 [init -> acpi] Rewriting 05:00.0 IRQ: 11 -> GSI: 19 [init] child "acpi" announces service "PCI" [init] child "acpi" announces service "IRQ" [init -> ahci_drv] AHCI found (vendor: 1002 device: 4391 class: 00010601) [init -> acpi -> pci_drv] 0:11.0 uses IRQ, vector 0xb [init -> ahci_drv] version: 1.0200 [init -> ahci_drv] command slots: 32 [init -> ahci_drv] native command queuing: yes [init -> ahci_drv] 64 bit support: yes [init -> ahci_drv] number of ports: 4 pi: f [init -> ahci_drv] #0: ATA [init -> ahci_drv] #1: ATA [init -> ahci_drv] #2: ATAPI [init -> ahci_drv] #3: off
On Wed, May 27, 2015 at 5:22 AM, Christian Helmuth < christian.helmuth@...1...> wrote:
Hi,
Thanks for your persistence regarding this subject. Please provide more information (log, config, run script) for the current issue (and in the future).
Greets
Christian Helmuth Genode Labs
http://www.genode-labs.com/ · http://genode.org/ · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hello Ben,
unfortunately your log looks quite scrambled. Please send a clean one so we have a chance to investigate. Further, please open a branch in your Github account, which reflects your changes to the test scenario and sources. At best, also push the log files to that branch.
Regards
Ben,
I've another question: Do you have Linux running on the machine? Then please also add the output of
sudo lshw -sanitize -numeric
to your branch. The reasoning about potential causes of the issue would be much easier. Currently, I expect the usage of the legacy IRQ 11 to be the problem.
Regards
I agree that IRQ 11 is probably the problem. It was when I was using the old AHCI driver. As for working with git/Github, I'm still not very experienced. I've forked Genode and added the lshw output as lshw.log, but I'm not sure where to go from here. I've read some documentation, but I'm still a little confused. I think I can figure things out, but I still have one question that I need an answer to: Can I fork the Genode repository without having to re-download Genode for my fork?
On Thu, May 28, 2015 at 9:00 AM, Christian Helmuth < christian.helmuth@...1...> wrote:
Ben,
I've another question: Do you have Linux running on the machine? Then please also add the output of
sudo lshw -sanitize -numeric
to your branch. The reasoning about potential causes of the issue would be much easier. Currently, I expect the usage of the legacy IRQ 11 to be the problem.
Regards
Christian Helmuth Genode Labs
http://www.genode-labs.com/ · http://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hello Ben,
On Thu, May 28, 2015 at 04:08:53PM +0000, Nobody III wrote:
As for working with git/Github, I'm still not very experienced. I've forked Genode and added the lshw output as lshw.log, but I'm not sure where to go from here. I've read some documentation, but I'm still a little confused. I think I can figure things out, but I still have one question that I need an answer to: Can I fork the Genode repository without having to re-download Genode for my fork?
First, I would recommend to read a good and pragmatic book about Git like https://progit.org/ This helps to get the fundamentals of the decentralized approach (repositories, clones, branches, working directories, topic branches) and also enough hands-on to get started. Further, you should make yourself familiar with the "Centralized repository with topic branches" work flow as we use it for Genode. See http://git-scm.com/docs/gitworkflows or http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows. Please don't recoil from creating a scratch repo at GitHub to test what you learned.
After that your questions above should be answered already. If not don't hesitate to join some public forum about Git and ask the experts there.
Regards
Regarding the IRQ issue...
On Thu, May 28, 2015 at 04:08:53PM +0000, Nobody III wrote:
I agree that IRQ 11 is probably the problem. It was when I was using the old AHCI driver.
Your log of lshw states Linux is using IRQ/GSI 19 for pci@...332...:00:11.0 in line 151. Unfortunately, the device surprisingly lacks the MSI capability and apparently the IRQ routing information in the ACPI table is wrong resp. incorrectly interpreted by our acpi_drv. Maybe you could try to hard-wire the IRQ setting for this device to 19 in pci_drv and give it a shot.
Regards
Hello Ben,
Christian's very useful references notwithstanding, let me also point you to Section 5.5 "Git flow" of the "Genode Foundations" book [1]. The Section describes our typical work flow while using Git.
[1] http://genode.org/documentation/genode-foundations-15-05.pdf
Cheers Norman
On 05/29/2015 08:54 AM, Christian Helmuth wrote:
Hello Ben,
On Thu, May 28, 2015 at 04:08:53PM +0000, Nobody III wrote:
As for working with git/Github, I'm still not very experienced. I've forked Genode and added the lshw output as lshw.log, but I'm not sure where to go from here. I've read some documentation, but I'm still a little confused. I think I can figure things out, but I still have one question that I need an answer to: Can I fork the Genode repository without having to re-download Genode for my fork?
First, I would recommend to read a good and pragmatic book about Git like https://progit.org/ This helps to get the fundamentals of the decentralized approach (repositories, clones, branches, working directories, topic branches) and also enough hands-on to get started. Further, you should make yourself familiar with the "Centralized repository with topic branches" work flow as we use it for Genode. See http://git-scm.com/docs/gitworkflows or http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows. Please don't recoil from creating a scratch repo at GitHub to test what you learned.
After that your questions above should be answered already. If not don't hesitate to join some public forum about Git and ask the experts there.
Regards
Small correction for the documentation: on pg. 152, "The latter commit is tagged *wit* the version number." should be changed to "The latter commit is tagged *with* the version number." It's hard to keep something that big free of typos.
On Fri, May 29, 2015 at 2:11 PM, Norman Feske <norman.feske@...1...> wrote:
Hello Ben,
Christian's very useful references notwithstanding, let me also point you to Section 5.5 "Git flow" of the "Genode Foundations" book [1]. The Section describes our typical work flow while using Git.
[1] http://genode.org/documentation/genode-foundations-15-05.pdf
Cheers Norman
On 05/29/2015 08:54 AM, Christian Helmuth wrote:
Hello Ben,
On Thu, May 28, 2015 at 04:08:53PM +0000, Nobody III wrote:
As for working with git/Github, I'm still not very experienced. I've
forked
Genode and added the lshw output as lshw.log, but I'm not sure where to
go
from here. I've read some documentation, but I'm still a little
confused. I
think I can figure things out, but I still have one question that I
need an
answer to: Can I fork the Genode repository without having to
re-download
Genode for my fork?
First, I would recommend to read a good and pragmatic book about Git like https://progit.org/ This helps to get the fundamentals of the decentralized approach (repositories, clones, branches, working directories, topic branches) and also enough hands-on to get started. Further, you should make yourself familiar with the "Centralized repository with topic branches" work flow as we use it for Genode. See http://git-scm.com/docs/gitworkflows or http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows. Please don't recoil from creating a scratch repo at GitHub to test what you learned.
After that your questions above should be answered already. If not don't hesitate to join some public forum about Git and ask the experts there.
Regards
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Thanks for the links. I understand a little better how to work with Git now. I haven't read everything, but I have looked at the parts that seem most relevant. I'm still not finding an answer to my question. Can I fork the Genode repository without having to re-download Genode for my fork?
On Fri, May 29, 2015 at 6:54 AM, Christian Helmuth < christian.helmuth@...1...> wrote:
Hello Ben,
On Thu, May 28, 2015 at 04:08:53PM +0000, Nobody III wrote:
As for working with git/Github, I'm still not very experienced. I've
forked
Genode and added the lshw output as lshw.log, but I'm not sure where to
go
from here. I've read some documentation, but I'm still a little
confused. I
think I can figure things out, but I still have one question that I need
an
answer to: Can I fork the Genode repository without having to re-download Genode for my fork?
First, I would recommend to read a good and pragmatic book about Git like https://progit.org/ This helps to get the fundamentals of the decentralized approach (repositories, clones, branches, working directories, topic branches) and also enough hands-on to get started. Further, you should make yourself familiar with the "Centralized repository with topic branches" work flow as we use it for Genode. See http://git-scm.com/docs/gitworkflows or http://git-scm.com/book/en/v2/Distributed-Git-Distributed-Workflows. Please don't recoil from creating a scratch repo at GitHub to test what you learned.
After that your questions above should be answered already. If not don't hesitate to join some public forum about Git and ask the experts there.
Regards
Christian Helmuth Genode Labs
http://www.genode-labs.com/ · http://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Ben,
On 05/29/2015 05:59 PM, Nobody III wrote:
Small correction for the documentation: on pg. 152, "The latter commit is tagged *wit* the version number." should be changed to "The latter commit is tagged *with* the version number." It's hard to keep something that big free of typos.
thanks. That is much appreciated!
Cheers Norman
Hi Ben,
On 05/29/2015 06:16 PM, Nobody III wrote:
Thanks for the links. I understand a little better how to work with Git now. I haven't read everything, but I have looked at the parts that seem most relevant. I'm still not finding an answer to my question. Can I fork the Genode repository without having to re-download Genode for my fork?
I am not 100% sure I got your question right. But I will try to answer anyway. You can do the following:
* Clone Genode from genodelabs/genode. This is what you most likely have done already, * Create a fork of Genode at GitHub, * Add the URL of your fork as a "remote" to your local repository (see the 'git remote' command), * Fetch the differences between your local repository and the remote one, e.g., your fork (see the 'git fetch' command) * Switch to a specific topic branch (see the 'git checkout' and 'git branch' commands) * Upload the commits of your topic branch to your fork (see the 'git push' command)
In short: There is no need to download the entirety of Genode again because 'git fetch' downloads just the differences.
But all that is not specific to Genode but general Git-Fu. Hence, Christian suggested to consult Git-related resources for help.
Cheers Norman
Thanks! I'm still new to Git, but I don't want to wade through a ton of documentation just to find a few answers.
On Fri, May 29, 2015 at 6:12 PM, Norman Feske <norman.feske@...1...> wrote:
Hi Ben,
On 05/29/2015 06:16 PM, Nobody III wrote:
Thanks for the links. I understand a little better how to work with Git now. I haven't read everything, but I have looked at the parts that seem most relevant. I'm still not finding an answer to my question. Can I fork the Genode repository without having to re-download Genode for my fork?
I am not 100% sure I got your question right. But I will try to answer anyway. You can do the following:
- Clone Genode from genodelabs/genode. This is what you most likely have done already,
- Create a fork of Genode at GitHub,
- Add the URL of your fork as a "remote" to your local repository (see the 'git remote' command),
- Fetch the differences between your local repository and the remote one, e.g., your fork (see the 'git fetch' command)
- Switch to a specific topic branch (see the 'git checkout' and 'git branch' commands)
- Upload the commits of your topic branch to your fork (see the 'git push' command)
In short: There is no need to download the entirety of Genode again because 'git fetch' downloads just the differences.
But all that is not specific to Genode but general Git-Fu. Hence, Christian suggested to consult Git-related resources for help.
Cheers Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Ben,
On Sat, May 30, 2015 at 12:24:08AM +0000, Nobody III wrote:
Thanks! I'm still new to Git, but I don't want to wade through a ton of documentation just to find a few answers.
To be honest this kind of mindset is what makes developers keep back from helping beginners in public forums. It also leads to the wrong conclusion that it's not worth the effort to invest time as *those people* are lazy anyway and never read documentation.
I had a couple of those discussions and still don't share the assumption. On the contrary, I believe it is important to help beginners to understand the developers perspective in this matter. Developers invested a vast amount of time in education (often self-education), which includes "wading through a ton of documentation", reading books, and mailing-list discussions. Further, they also put lot of practical experience on the scale, which most of them are eager to share. The basic reward developers expect in return is respect, willingness to learn, and personal contribution, for example, self-education.
Therefore, I advise you to read the ProGit book, which takes 1-2 days, and further delve into some aspects that are not clear in the first place via the numerous resources in the web. We are not Git experts either but we invested time to master the tools.
Regards
My mindset has basically been that it when it could take me hours to find a solution that someone else already knows, it seems a little pointless. As for Git specifically, it seems like a tool with many advanced features, most of which I'll never use. Also, I'm better at learning to use tools by seeing what commands do what (examples) rather than by reading lengthy documentation. I have spent far too much time reading documentation to find simple answers. Most of what I read I forget, and I sometimes later have to read the same documentation again to figure out how to do the same thing I did earlier. Basically, at this time I don't think I need to use much of the advanced functions of Git, and so most of the knowledge will go unused and will inevitably be forgotten. Please correct me if I'm wrong. If my memory were better, or if I were involved in more large-scale projects, I would find reading the book more useful. Sorry for still being hesitant. I really have read a lot if documentation, forums, and mailing lists. I really do want to learn, and am willing to take the time needed, but I also want to get to working on the AHCI issue rather than spending a couple days reading about Git. I also have two main projects of my own that I switch between, both of which are fairly ambitious. By the way, I have read the Genode manual. (I skipped some sections, but I still probably read the majority of it.) I think the people who don't like helping a lot of beginners don't understand that the documentation is often part of the problem. I learn best when given the big picture and organized documentation that I can use as a reference. I'm best at remembering things if I learn them to use them in the near future.
On 05/31/2015 08:53 AM, Nobody III wrote:
My mindset has basically been that it when it could take me hours to find a solution that someone else already knows, it seems a little pointless. As for Git specifically, it seems like a tool with many advanced features, most of which I'll never use. Also, I'm better at learning to use tools by seeing what commands do what (examples) rather than by reading lengthy documentation. I have spent far too much time reading documentation to find simple answers. Most of what I read I forget, and I sometimes later have to read the same documentation again to figure out how to do the same thing I did earlier. Basically, at this time I don't think I need to use much of the advanced functions of Git, and so most of the knowledge will go unused and will inevitably be forgotten. Please correct me if I'm wrong. If my memory were better, or if I were involved in more large-scale projects, I would find reading the book more useful. Sorry for still being hesitant. I really have read a lot if documentation, forums, and mailing lists. I really do want to learn, and am willing to take the time needed, but I also want to get to working on the AHCI issue rather than spending a couple days reading about Git. I also have two main projects of my own that I switch between, both of which are fairly ambitious. By the way, I have read the Genode manual. (I skipped some sections, but I still probably read the majority of it.) I think the people who don't like helping a lot of beginners don't understand that the documentation is often part of the problem. I learn best when given the big picture and organized documentation that I can use as a reference. I'm best at remembering things if I learn them to use them in the near future.
git clone git fetch git rebase (-i) git commit git push git remote add * git branch git log git show git add/del
That is basically all you need and it is sufficient to know them all in its basic forms. As Christian mentioned, if you understand the concept behind Git, there is no magic to it. I suggest to play around a little.
It is easier than you think, I have been through cvs, svn, bzr, hg myself, and Git is easily the most efficient one,
Sebastian
P.S. Reading is good, but trying is even better :-)
Hi
To be honest this kind of mindset is what makes developers keep back from helping beginners in public forums. It also leads to the wrong conclusion that it's not worth the effort to invest time as *those people* are lazy anyway and never read documentation.
Not really, it's a problem in the linux world imho.
If you take a look at question and answer sites like stackoverflow you will most likely get an answer to things you would think as a beginner question / described in a faq.
For example you have a really good documentation from microsoft for c# (msdn). The documentation does not only show methods etc, but also gives examples. For a lot of people an example is more clear then an abstract description.
On stackoverflow you will find questions like how dictionaries (hashtables for the rest of the world) are used efficiently to get the resulting key/value-pairs in some order. It would be trivial to say: it's unordered, get every element and order them for yourself. Or: read the MSDN. Most likely you will see code for some solutions. You will also get most likely an explaination that .net has specialized dictionaries which can be better used for such a task and if somebody has always used something liek this you will get an explaination that you should not used OrderedDictionary, but SortedDictionary and an example. That is sufficent for the beginner to know. (I personally think nobody knows all classes of such a huge framework and sometimes you will get a better result if you have other people to talk about a problem. Asking a question means to think about the problem. Explaining to others what you want to do is a way to structure a problem. Do you know rubber duck codding/debugging? If you have something you don't now and you seem to be stuck take a rubber duck. Try to explain to the duck the problem you have. In the moment you are beginning to ask the duck a question you are forming the question in a way somebody can understand. In this process it is likely that you get an answer from yourself. (instead of a rubber duck a working student is a good replacement - it doesn't matter if the duck/student can't answer the question. You have thought about it and then know better what you need. Think about a possible answer. Sometimes you see a problem from another site and get a solution. Sometimes you need to search further or find somebody with the knowledge.
If you have something like a sourcecontrol system it is not the thing you want to focus on. It is nice to know a lot of things about let's say git or svn. But it is not the main job. Wading through tons of documentatino for a sidetask is not efficent. If you have a larger organization put the task to somebody who then can be the reference /oracle which can be asked if something needs to be done which is complicated. But normally for most tasks a more simple howto can help. For example i have seen 4-5 pages articles in magiazines which describe things you need to do an a sourcecontrol system on 3-5 pages. And it seems to be sufficent for daily work. Not a ton of things you never need and forget, but a simplified form for somebody just need using it. It's a more practical approach which can be read and adopted in 20 minutes if you are slow (not heise, itwas something linux specific - heise articles only start to explain a problem and in the moment then it starts to get interesting - they stop.)
The thing is: most documentations are written by somebody who does not want to write a documentation, but needs to do. No didactical knowledge, just some facts (like throwing some kitchen junk to pigs to eat it) Documentation is a thing which is outdated quite fast. That is the sole reason why people are wading through documentation - it is most likely not written for somebody to learn something fast or get only the things to know first. If you look at programming books you have a lot of old-style thigns and some which are explicitly written for beginners (e.g. Schrödinger lernt XYZ or XYZ Head To Toe). For some people it is better to learn somethign which such a book (i don't like them, but they take a modern approach using learning theories - somethign you doin't normally find for something liek a source control system). Something like https://rogerdudler.github.io/git-guide/index.de.html will be enough for most starters. http://git-scm.com/book/en/v2 is a bit of overkill. If no questions from starters are asked you will not have a feedback whats wrong with your documentation. Or where things you need to know are not described or linked to descriptions which are sufficent for tasks.
Respect is a two way thing - not onyl going from an asker to somebody asked. Many developers think about as not worth answering.
Best regards Wolfgang
Hello,
I'm not going to deepen this discussion further beyond some last remarks below.
On Sun, May 31, 2015 at 06:53:24AM +0000, Nobody III wrote:
My mindset has basically been that it when it could take me hours to find a solution that someone else already knows, it seems a little pointless. As for Git specifically, it seems like a tool with many advanced features, most of which I'll never use.
If you're interested in more help than just some comments on the mailing list, I fear you have to master Git beyond just "git clone". As Norman mentioned before we established an efficient work flow and will stick to it.
Also, I'm better at learning to use tools by seeing what commands do what (examples) rather than by reading lengthy documentation. I have spent far too much time reading documentation to find simple answers.
Then the following book may be of interest to you
https://pragprog.com/book/pg_git/pragmatic-guide-to-git
It provides the reader with recipes for basic, common, and also advanced tasks in her day-to-day work with Git.
I think the people who don't like helping a lot of beginners don't understand that the documentation is often part of the problem. I learn best when given the big picture and organized documentation that I can use as a reference. I'm best at remembering things if I learn them to use them in the near future.
Any concrete tips or contributions to improve our documentation are welcome. But please don't expect us to write "An introduction to Git" as there already to many and most of 'em are rather bad.
Regards