All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Trouble bringing up Raspberry Pi
@ 2015-12-19 20:11 Steve Morris
  2015-12-20  9:27 ` Thomas Petazzoni
  0 siblings, 1 reply; 6+ messages in thread
From: Steve Morris @ 2015-12-19 20:11 UTC (permalink / raw)
  To: buildroot

Hi All,

I'm having some trouble bringing up a Raspberry Pi B+ and was hoping
someone could point me in the right direction. I have successfully used
buildroot on x86 machines in the past and managed to get them to run.

I'm using a Raspberry Pi B+,with a USB keyboard, ethernet and HDMI
output. The system works properly using a Raspbian image.

I'm just trying to bring up a minimal system and then go from there.

I'm using buildroot-2015.11.1 and followed the readme.txt under
board/raspberrypi. I've tried both the volatile and persistent rootfs
and find the instruction insufficient to get a working system.

After the first failed attempt, I set 
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
which allowed me to boot the machine  and I'm now able to log in via
SSH/dropbear, but I don't always get a login prompt, and the keyboard
has no effect even though it's found by the system and I
 get a message when I unplug it or plug it back in again.

I've tried adding items to cmdline.txt from various websites, 
but still don't have any keyboard input.

Are there other missing notes like the one about enabling MDEV which
will allow me to log in to the console?

Perhaps a working .config for the Pi B+ would set me in the right
direction.

Thanks,

Steve Morris

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] Trouble bringing up Raspberry Pi
  2015-12-19 20:11 [Buildroot] Trouble bringing up Raspberry Pi Steve Morris
@ 2015-12-20  9:27 ` Thomas Petazzoni
  2015-12-20 13:36   ` Steve Morris
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2015-12-20  9:27 UTC (permalink / raw)
  To: buildroot

Steve,

On Sat, 19 Dec 2015 12:11:26 -0800, Steve Morris wrote:

> Perhaps a working .config for the Pi B+ would set me in the right
> direction.

Did you try:

	make raspberrypi_defconfig
	make

And then read the instructions in board/raspberrypi/readme.txt ?

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] Trouble bringing up Raspberry Pi
  2015-12-20  9:27 ` Thomas Petazzoni
@ 2015-12-20 13:36   ` Steve Morris
  2015-12-20 13:40     ` Thomas Petazzoni
  0 siblings, 1 reply; 6+ messages in thread
From: Steve Morris @ 2015-12-20 13:36 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

Thank you for the response. 

Yes, I followed those instructions at least a  couple of times for both
volatile and persistent root.

It hung during boot until I added the mdev selection.

I was able to get keyboard input working by loading the hid-microsoft
module  ( microsoft USB keyboard ), but I was assuming a minimal system
could read a generic USB keyboard.

I'll try it again from scratch and see if I have better results.

Steve






On Sun, Dec 20, 2015 at 10:27:21AM +0100, Thomas Petazzoni wrote:
> Steve,
> 
> On Sat, 19 Dec 2015 12:11:26 -0800, Steve Morris wrote:
> 
> > Perhaps a working .config for the Pi B+ would set me in the right
> > direction.
> 
> Did you try:
> 
> 	make raspberrypi_defconfig
> 	make
> 
> And then read the instructions in board/raspberrypi/readme.txt ?
> 
> Best regards,
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] Trouble bringing up Raspberry Pi
  2015-12-20 13:36   ` Steve Morris
@ 2015-12-20 13:40     ` Thomas Petazzoni
  2015-12-20 20:12       ` Steve Morris
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2015-12-20 13:40 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 20 Dec 2015 05:36:18 -0800, Steve Morris wrote:

> Thank you for the response. 
> 
> Yes, I followed those instructions at least a  couple of times for both
> volatile and persistent root.
> 
> It hung during boot until I added the mdev selection.

When does it hang? It definitely shouldn't hang. Are you using the
serial port of your RPi to get the bootloader/kernel/initialization
messages ?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] Trouble bringing up Raspberry Pi
  2015-12-20 13:40     ` Thomas Petazzoni
@ 2015-12-20 20:12       ` Steve Morris
  2015-12-20 21:48         ` Thomas Petazzoni
  0 siblings, 1 reply; 6+ messages in thread
From: Steve Morris @ 2015-12-20 20:12 UTC (permalink / raw)
  To: buildroot

Hello Thomas,

I retried on a Pi Model B which had a serial adapter already connected.

The major problem appears to be that the USB keyboard is not working
using the standard build.  It is found during boot and displays messages
when unplugging/pluging. Perhaps I'm expecting too much.


The network only comes up if I put 'ip=dhcp' in cmdline.txt. This may be
normal behavior.

In any event, here are the steps I took to retry and the output on the
console.

Thanks,

Steve


I rebuilt using a fresh install of buildroot 2015-11-1

$make raspberrypi_defconfig
$make

When it was done I copied it over to the SD card using:
(PIBOOT and PIROOT are the partitions on the card )

rm -rf ${PIBOOT}/*
sudo rm -rf ${PIROOT}/*
cd $BRDIR
cp output/images/rpi-firmware/* ${PIBOOT}
cp output/images/*.dtb ${PIBOOT}
./output/host/usr/bin/mkknlimg output/images/zImage ${PIBOOT}/zImage
sudo tar xf ./output/images/rootfs.tar -C ${PIROOT}



Here's what the SD card looks like.

Disk /dev/sdc: 7.5 GiB, 8043626496 bytes, 15710208 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

Device     Boot  Start      End  Sectors  Size Id Type
/dev/sdc1  *      2048   104447   102400   50M  c W95 FAT32 (LBA)
/dev/sdc2       104448 15710207 15605760  7.5G 83 Linux

Here's cmdline.txt

root=/dev/mmcblk0p2 rootwait console=ttyAMA0,115200 rootfstype=ext4


And here's the boot output from serial console:


\0Uncompressing Linux... done, booting the kernel.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.1.5 (morris at moe) (gcc version 4.9.3 (Buildroot 2015.11.1) ) #1 PREEMPT Sun Dec 20 06:04:15 PST 2015
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[    0.000000] Machine model: Raspberry Pi Model B Rev 2
[    0.000000] cma: Reserved 8 MiB at 0x19400000
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 104545
[    0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=720 bcm2708_fb.fbheight=480 bcm2708.boardrev=0xe bcm2708.serial=0xb3b3a0be smsc95xx.macaddr=B8:27:EB:B3:A0:BE bcm2708_fb.fbswap=1 sdhci-bcm2708.emmc_clock_freq=250000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  root=/dev/mmcblk0p2 rootwait console=ttyAMA0,115200 rootfstype=ext4
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 399960K/421888K available (6136K kernel code, 490K rwdata, 1780K rodata, 352K init, 720K bss, 13736K reserved, 8192K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xda000000 - 0xff000000   ( 592 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd9c00000   ( 412 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc07c34f0   (7918 kB)
[    0.000000]       .init : 0xc07c4000 - 0xc081c000   ( 352 kB)
[    0.000000]       .data : 0xc081c000 - 0xc089681c   ( 491 kB)
[    0.000000]        .bss : 0xc089681c - 0xc094a990   ( 721 kB)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] 	Additional per-CPU info printed with stalls.
[    0.000000] NR_IRQS:522
[    0.000000] clocksource stc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 ns
[    0.000015] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 2147483647500ns
[    0.000059] Switching to timer-based delay loop, resolution 1000ns
[    0.000347] Console: colour dummy device 80x30
[    0.000390] Calibrating delay loop (skipped), value calculated using timer frequency.. 2.00 BogoMIPS (lpj=10000)
[    0.000418] pid_max: default: 32768 minimum: 301
[    0.000772] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000801] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001855] Initializing cgroup subsys blkio
[    0.001901] Initializing cgroup subsys memory
[    0.001940] Initializing cgroup subsys devices
[    0.001971] Initializing cgroup subsys freezer
[    0.002000] Initializing cgroup subsys net_cls
[    0.002087] CPU: Testing write buffer coherency: ok
[    0.002167] ftrace: allocating 19785 entries in 59 pages
[    0.112781] Setting up static identity map for 0x81c0 - 0x81f8
[    0.115539] devtmpfs: initialized
[    0.125564] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
[    0.125909] clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.127912] pinctrl core: initialized pinctrl subsystem
[    0.128755] NET: Registered protocol family 16
[    0.134178] DMA: preallocated 4096 KiB pool for atomic coherent allocations
[    0.135594] bcm2708.uart_clock = 3000000
[    0.140470] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
[    0.140498] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.140652] Serial: AMBA PL011 UART driver
[    0.140919] 20201000.uart: ttyAMA0 at MMIO 0x20201000 (irq = 83, base_baud = 0) is a PL011 rev2
[    0.508996] console [ttyAMA0] enabled
[    0.513379] bcm2835-mbox 2000b880.mailbox: mailbox enabled
[    0.581590] bcm2708-dmaengine 20007000.dma: DMA legacy API manager at f2007000, dmachans=0x7f35
[    0.591062] bcm2708-dmaengine 20007000.dma: Load BCM2835 DMA engine driver
[    0.597946] bcm2708-dmaengine 20007000.dma: dma_debug:0
[    0.604125] SCSI subsystem initialized
[    0.608229] usbcore: registered new interface driver usbfs
[    0.613963] usbcore: registered new interface driver hub
[    0.619458] usbcore: registered new device driver usb
[    0.625515] raspberrypi-firmware soc:firmware: Attached to firmware from 2015-08-13 00:03
[    0.661132] Switched to clocksource stc
[    0.718197] FS-Cache: Loaded
[    0.721574] CacheFiles: Loaded
[    0.741304] NET: Registered protocol family 2
[    0.747154] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.754541] TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
[    0.761072] TCP: Hash tables configured (established 4096 bind 4096)
[    0.767577] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.773488] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.780123] NET: Registered protocol family 1
[    0.785198] RPC: Registered named UNIX socket transport module.
[    0.791260] RPC: Registered udp transport module.
[    0.795967] RPC: Registered tcp transport module.
[    0.800664] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.808325] hw perfevents: enabled with armv6_1176 PMU driver, 3 counters available
[    0.817543] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.840548] VFS: Disk quotas dquot_6.6.0
[    0.845077] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.854730] FS-Cache: Netfs 'nfs' registered for caching
[    0.861880] NFS: Registering the id_resolver key type
[    0.867024] Key type id_resolver registered
[    0.871344] Key type id_legacy registered
[    0.879329] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.887347] io scheduler noop registered
[    0.891483] io scheduler deadline registered
[    0.896161] io scheduler cfq registered (default)
[    0.903600] BCM2708FB: allocated DMA memory 59800000
[    0.908630] BCM2708FB: allocated DMA channel 0 @ f2007000
[    0.920137] Console: switching to colour frame buffer device 90x30
[    0.930586] Serial: 8250/16550 driver, 0 ports, IRQ sharing disabled
[    0.938737] vc-cma: Videocore CMA driver
[    0.942834] vc-cma: vc_cma_base      = 0x00000000
[    0.947544] vc-cma: vc_cma_size      = 0x00000000 (0 MiB)
[    0.953043] vc-cma: vc_cma_initial   = 0x00000000 (0 MiB)
[    0.958798] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
[    0.987233] brd: module loaded
[    0.999844] loop: module loaded
[    1.004347] vchiq: vchiq_init_state: slot_zero = 0xd9880000, is_master = 0
[    1.013733] Loading iSCSI transport class v2.0-870.
[    1.020004] usbcore: registered new interface driver smsc95xx
[    1.026137] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    1.232415] Core Release: 2.80a
[    1.235581] Setting default values for core params
[    1.240399] Finished setting default values for core params
[    1.446330] Using Buffer DMA mode
[    1.449665] Periodic Transfer Interrupt Enhancement - disabled
[    1.455532] Multiprocessor Interrupt Enhancement - disabled
[    1.461104] OTG VER PARAM: 0, OTG VER FLAG: 0
[    1.465500] Dedicated Tx FIFOs mode
[    1.469507] WARN::dwc_otg_hcd_init:1047: FIQ DMA bounce buffers: virt = 0xd9814000 dma = 0x59814000 len=9024
[    1.479426] FIQ FSM acceleration enabled for :
[    1.479426] Non-periodic Split Transactions
[    1.479426] Periodic Split Transactions
[    1.479426] High-Speed Isochronous Endpoints
[    1.496313] WARN::hcd_init_fiq:412: FIQ on core 0 at 0xc04268d0
[    1.502238] WARN::hcd_init_fiq:413: FIQ ASM at 0xc0426bac length 36
[    1.508515] WARN::hcd_init_fiq:438: MPHI regs_base at 0xda096000
[    1.514728] dwc_otg 20980000.usb: DWC OTG Controller
[    1.519763] dwc_otg 20980000.usb: new USB bus registered, assigned bus number 1
[    1.527199] dwc_otg 20980000.usb: irq 32, io mem 0x00000000
[    1.532850] Init: Port Power? op_state=1
[    1.536774] Init: Power Port (0)
[    1.540425] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.547286] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.554551] usb usb1: Product: DWC OTG Controller
[    1.559260] usb usb1: Manufacturer: Linux 4.1.5 dwc_otg_hcd
[    1.564874] usb usb1: SerialNumber: 20980000.usb
[    1.570605] hub 1-0:1.0: USB hub found
[    1.574601] hub 1-0:1.0: 1 port detected
[    1.579818] usbcore: registered new interface driver usb-storage
[    1.586446] mousedev: PS/2 mouse device common for all mice
[    1.593245] bcm2835-cpufreq: min=700000 max=700000
[    1.598449] sdhci: Secure Digital Host Controller Interface driver
[    1.604785] sdhci: Copyright(c) Pierre Ossman
[    1.609780] mmc-bcm2835 20300000.mmc: mmc_debug:0 mmc_debug2:0
[    1.615786] mmc-bcm2835 20300000.mmc: DMA channels allocated
[    1.661588] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.667831] ledtrig-cpu: registered to indicate activity on CPUs
[    1.674501] hidraw: raw HID events driver (C) Jiri Kosina
[    1.685627] usbcore: registered new interface driver usbhid
[    1.693477] usbhid: USB HID core driver
[    1.699923] Initializing XFRM netlink socket
[    1.706441] NET: Registered protocol family 17
[    1.714416] Key type dns_resolver registered
[    1.724178] registered taskstats version 1
[    1.728620] vc-sm: Videocore shared memory driver
[    1.733525] [vc_sm_connected_init]: start
[    1.738562] [vc_sm_connected_init]: end - returning 0
[    1.745615] uart-pl011 20201000.uart: no DMA platform data
[    1.751860] Waiting for root device /dev/mmcblk0p2...
[    1.763985] mmc0: host does not support reading read-only switch, assuming write-enable
[    1.772303] Indeed it is in host mode hprt0 = 00021501
[    1.783466] mmc0: new high speed SDHC card at address 59b4
[    1.801253] mmcblk0: mmc0:59b4 NCard 7.49 GiB 
[    1.807506]  mmcblk0: p1 p2
[    1.865137] EXT4-fs (mmcblk0p2): INFO: recovery required on readonly filesystem
[    1.872717] EXT4-fs (mmcblk0p2): write access will be enabled during recovery
[    1.971253] usb 1-1: new high-speed USB device number 2 using dwc_otg
[    1.977908] Indeed it is in host mode hprt0 = 00001101
[    2.181631] usb 1-1: New USB device found, idVendor=0424, idProduct=9512
[    2.188372] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.196736] hub 1-1:1.0: USB hub found
[    2.200707] hub 1-1:1.0: 3 ports detected
[    2.340642] EXT4-fs (mmcblk0p2): recovery complete
[    2.433841] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    2.442094] VFS: Mounted root (ext4 filesystem) readonly on device 179:2.
[    2.450309] devtmpfs: mounted
[    2.454461] Freeing unused kernel memory: 352K (c07c4000 - c081c000)
[    2.481284] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
[    2.594704] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
[    2.601784] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
[    2.608676] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    2.637069] smsc95xx v1.0.4
Starting logging: OK
[    2.716215] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-20980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:b3:a0:be
Initializing random number generator... [    2.820284] random: dd urandom read with 66 bits of entropy available
done.
[    2.841403] usb 1-1.3: new low-speed USB device number 4 using dwc_otg
Starting network...
[    2.990154] usb 1-1.3: New USB device found, idVendor=045e, idProduct=00db
[    2.997122] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[    3.005140] usb 1-1.3: Product: Natural? Ergonomic Keyboard 4000
[    3.011402] usb 1-1.3: Manufacturer: Microsoft
[   62.570858] random: nonblocking pool is initialized
\0


On Sun, Dec 20, 2015 at 02:40:59PM +0100, Thomas Petazzoni wrote:
> Hello,
> 
> On Sun, 20 Dec 2015 05:36:18 -0800, Steve Morris wrote:
> 
> > Thank you for the response. 
> > 
> > Yes, I followed those instructions at least a  couple of times for both
> > volatile and persistent root.
> > 
> > It hung during boot until I added the mdev selection.
> 
> When does it hang? It definitely shouldn't hang. Are you using the
> serial port of your RPi to get the bootloader/kernel/initialization
> messages ?
> 
> Thomas

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Buildroot] Trouble bringing up Raspberry Pi
  2015-12-20 20:12       ` Steve Morris
@ 2015-12-20 21:48         ` Thomas Petazzoni
  0 siblings, 0 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2015-12-20 21:48 UTC (permalink / raw)
  To: buildroot

Dear Steve Morris,

On Sun, 20 Dec 2015 12:12:35 -0800, Steve Morris wrote:

> I retried on a Pi Model B which had a serial adapter already connected.
> 
> The major problem appears to be that the USB keyboard is not working
> using the standard build.  It is found during boot and displays messages
> when unplugging/pluging. Perhaps I'm expecting too much.

What behavior are you expecting with the USB keyboard ?

If you expect the key presses on your USB keyboard to appear on your
serial console, then indeed this will not work as it wouldn't make any
sense. The USB keyboard presses should appear on tty1 (i.e on the
screen).

> The network only comes up if I put 'ip=dhcp' in cmdline.txt. This may be
> normal behavior.

By default, Buildroot does not configure any network interface. If all
you want is DHCP on one interface, you can set option BR2_SYSTEM_DHCP
to the name of your network interface.

If you need something more complicated, then it's up to you to provide
a rootfs overlay with your own /etc/network/interfaces file.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-12-20 21:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-19 20:11 [Buildroot] Trouble bringing up Raspberry Pi Steve Morris
2015-12-20  9:27 ` Thomas Petazzoni
2015-12-20 13:36   ` Steve Morris
2015-12-20 13:40     ` Thomas Petazzoni
2015-12-20 20:12       ` Steve Morris
2015-12-20 21:48         ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.