# Packetbeat on i586 Alix Board with ArchLinux

**URL:** https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216
**Category:** Beats
**Created:** [May 17, 2016, 11:42am UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216 "2016-05-17T11:42:09Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 17, 2016, 11:42am UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/1 "2016-05-17T11:42:09Z")

</div>

Hello,

I installed ArchLinux on a Alix2d13 Board ([http://www.pcengines.ch/alix2d13.htm](http://www.pcengines.ch/alix2d13.htm)) which runs with an i586 AMD Geode LX800 CPU. I also configured a bridge with two of the three nics. My goal is to use such devices as taps for capturing traffic with Packetbeat.  
Unfortunately I can't install Packetbeat 1.2.1 either from the Arch Aur Repos ([https://aur.archlinux.org/packages/packetbeat/](https://aur.archlinux.org/packages/packetbeat/)) or via source code from the git repo, running make. In both cases a get the same error:

$ make  
go build  
../libbeat/scripts/Makefile:63: recipe for target 'build' failed  
make: \*\*\* [build] Illegal instruction (core dumped)

I also tried the Arch Aur Repo with the precompiled binary ([https://aur.archlinux.org/packages/packetbeat-bin/](https://aur.archlinux.org/packages/packetbeat-bin/)) , with this solution I get the following error:  
● packetbeat.service - Open Source Real-Time Packet Analyzer  
Loaded: loaded (/usr/lib/systemd/system/packetbeat.service; enabled; vendor preset: disabled)  
Active: failed (Result: core-dump) since Tue 2016-05-17 13:13:12 CEST; 2s ago  
Docs: [https://www.elastic.co/guide/en/beats/packetbeat/current](https://www.elastic.co/guide/en/beats/packetbeat/current)  
Process: 11461 ExecStart=/usr/bin/packetbeat -c /etc/packetbeat/packetbeat.yml (code=dumped, signal=ILL)  
Main PID: 11461 (code=dumped, signal=ILL)

May 17 13:13:12 Bridge systemd[1]: Started Open Source Real-Time Packet Analyzer.  
May 17 13:13:12 Bridge systemd[1]: packetbeat.service: Main process exited, code=dumped, status=4/ILL  
May 17 13:13:12 Bridge systemd[1]: packetbeat.service: Unit entered failed state.  
May 17 13:13:12 Bridge systemd[1]: packetbeat.service: Failed with result 'core-dump'.

Do you have any idea if libbeat/packetbeat is incomatible with the i586 architecture?

Cheers

---

<div class="post-metadata">

### Author: ![steffens](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/steffens/32/79630_2.png) [@steffens](https://discuss.elastic.co/u/steffens)
#### Post date: [May 17, 2016, 12:07pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/2 "2016-05-17T12:07:49Z")

</div>

No idea about ArchLinux packages. Did you try to contact the container about the package?

Can you try to run packetbeat on console:

`/usr/bin/packetbeat -e -v -c /etc/packetbeat/packetbeat.yml`

---

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 17, 2016, 12:49pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/3 "2016-05-17T12:49:19Z")

</div>

Yepp, it gives the same output:  
/usr/bin/packetbeat -e -v -c /etc/packetbeat/packetbeat.yml  
Illegal instruction (core dumped)

Until now not but I will do that.

---

<div class="post-metadata">

### Author: ![tylerjl](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/tylerjl/32/44965_2.png) [@tylerjl](https://discuss.elastic.co/u/tylerjl)
#### Post date: [May 17, 2016, 2:53pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/4 "2016-05-17T14:53:55Z")

</div>

Hey @LetMeSurf, I'm the maintainer of the package. 🙌

The `-bin` packages definitely won't work since those are precompiled against i686 and x64.

I would assume that go can compile programs as long as the language has been compiled for the architecture, so I'm not sure what step may be failing in the `go build`. The [only documentation I found referencing i586](https://golang.org/doc/install/gccgo) pertains to gccgo which is probably unrelated.

The next step I'd probably try is to get `go build` to output more verbose messages to try and see why the compilation is failing.

---

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 17, 2016, 3:24pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/5 "2016-05-17T15:24:18Z")

</div>

Hey Tyler

Thank you for your reply:-)

Unfortunately I wasn't able to get verbose output of go build. I tried to modify the ../libbeat/scripts/Makefile vor getting verbose like:

.PHONY: build  
build: $(GOFILES)  
go build -v

or

.PHONY: build  
build: $(GOFILES)  
go build --debug

But this has no inpact on the ouput. Event if I change it to

.PHONY: build  
build: $(GOFILES)  
go help

I get the same output. Can someone explain me please how to modify the Makefile to get verbose output from go build? Thanks

---

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 17, 2016, 3:25pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/6 "2016-05-17T15:25:30Z")

</div>

changes to the line build: $(GOFILES) ended in an error like:  
make: \*\*\* No rule to make target '--debug', needed by 'build'. Stop.

---

<div class="post-metadata">

### Author: ![andrewkroh](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/andrewkroh/32/3784_2.png) [@andrewkroh](https://discuss.elastic.co/u/andrewkroh)
#### Post date: [May 17, 2016, 3:58pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/7 "2016-05-17T15:58:44Z")

</div>

Can you please provide the output of `go env` and `go version` for this system.

How about just running `go build -x -v` from the packetbeat directory without any Makefile changes.

```auto
$ pwd
/Users/me/go/src/github.com/elastic/beats/packetbeat
$ go build -x -v

```

---

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 17, 2016, 6:56pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/8 "2016-05-17T18:56:38Z")

</div>

It seems that there is in generall something wrong with the go installation:

go env  
Illegal instruction (core dumped)  
$ go version  
Illegal instruction (core dumped)  
$ cd beats/packetbeat/  
$ go build -x -v  
Illegal instruction (core dumped)

---

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 17, 2016, 7:01pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/9 "2016-05-17T19:01:12Z")

</div>

$sudo pacman -S go  
warning: go-2:1.6.2-2 is up to date -- reinstalling  
resolving dependencies...  
looking for conflicting packages...

Packages (1) go-2:1.6.2-2

Total Installed Size: 160.40 MiB  
Net Upgrade Size: 0.00 MiB

:: Proceed with installation? [Y/n] y  
(1/1) checking keys in keyring [######################] 100%  
(1/1) checking package integrity [######################] 100%  
(1/1) loading package files [######################] 100%  
(1/1) checking for file conflicts [######################] 100%  
(1/1) checking available disk space [######################] 100%  
:: Processing package changes...  
(1/1) reinstalling go [######################] 100%  
/tmp/alpm\_u66Q7a/.INSTALL: line 16: 462 Illegal instruction (core dumped) go install std 2\> /dev/null  
$ go version  
Illegal instruction (core dumped)

---

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 19, 2016, 7:11am UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/10 "2016-05-19T07:11:21Z")

</div>

So I crosscompiled go now for the i586 plattform and installed it. When I now run make in the packetbeat folder, I get the following error:

$ make  
go build  
go tool: no such tool "compile"  
../libbeat/scripts/Makefile:63: recipe for target 'build' failed  
make: \*\*\* [build] Error 3

Has someone and idea how ti fix that?

---

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 19, 2016, 8:46am UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/11 "2016-05-19T08:46:40Z")

</div>

I found the problem, I had to copy the whole go directory, not only the binaries... Finally the compilation of packetbeat worked:-) Now i will install it

---

<div class="post-metadata">

### Author: ![steffens](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/steffens/32/79630_2.png) [@steffens](https://discuss.elastic.co/u/steffens)
#### Post date: [May 19, 2016, 10:20am UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/12 "2016-05-19T10:20:20Z")

</div>

The boards processor (AMD Geode LX800) seems to be 32bit. Are the ArchLinux packages for go and packetbeat 32bit or 64bit? Did you try to get the 32bit binaries from [packetbeat download page](https://www.elastic.co/downloads/beats/packetbeat)?

I see ArchLinux providing packages for i686 and x86\_64 only? Is your board well supported by ArchLinux? The boards vendor has a [list of supported distributions here](http://www.pcengines.ch/alix.htm).

---

<div class="post-metadata">

### Author: ![LetMeSurf](https://avatars.discourse-cdn.com/v4/letter/l/91b2a8/32.png) [@LetMeSurf](https://discuss.elastic.co/u/LetMeSurf)
#### Post date: [May 19, 2016, 2:53pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/13 "2016-05-19T14:53:13Z")

</div>

Arch Linux isn't on the list of supported distribtuions. However, I found this article: [https://www.reddit.com/r/archlinux/comments/1syd1n/archlinux\_on\_embedded\_devices\_help\_needed/](https://www.reddit.com/r/archlinux/comments/1syd1n/archlinux_on_embedded_devices_help_needed/)

"The Alix computers are using an i586-compatible processor, and is missing one instruction in order to be i686-compatible. Fortunately, modern compilers can fix this so that any i686 program will run on these processors."

I was able to install Arch Linux and various software packages without any problem, for example also tcpdump works. After crosscompiling the go toolchain, installing it on the Alix Board and compiling packetbeat, I can run packetbeat now:-)

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [July 5, 2017, 9:51pm UTC](https://discuss.elastic.co/t/packetbeat-on-i586-alix-board-with-archlinux/50216/14 "2017-07-05T21:51:44Z")

</div>


