<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi there,<br>
</p>
<p>I am experiencing bird throwing a <FATAL> Unknown character
error on my configuration files.<br>
I suspect this might be related to CRLF vs LF, as all the
positions it reports unknown character seems to be EOL or blank
spaces. I should mention I am currently writing my configuration
on a Windows machine, but it has passed between Linux and Windows
a couple times.<br>
</p>
<p>As an example, trying to start BIRD 3.1.0 on an Alpine Linux edge
box gives the following:<br>
</p>
<pre>ns2:~# bird
bird: 2025-05-20 18:39:55.659 [0001] <FATAL> /etc/bird.d/defines/constants.def:2:31 Unknown character
ns2:~# head /etc/bird.d/defines/constants.def
# Local preference values
define LP_UPSTREAM = 100;
define LP_PEER = 200;
define LP_DOWNSTREAM = 300;
define LP_OTHER = 150;
# ASNs
define AS_SELF = 209718;
define AS_BOGON = [
0,
ns2:~#
if I merge the second line with the first line to look like this:
define LP_UPSTREAM = 100;define LP_PEER = 200;
I get
ns2:~# bird
bird: 2025-05-20 18:41:02.547 [0001] <FATAL> /etc/bird.d/defines/constants.def:2:61 Unknown character
Similarly, on another box running Debian 12 with the pkg.labs.nic.cz repository, on BIRD 3.1.1:
bird3:~# bird
bird: 2025-05-20 18:42:01.451 [0001] <FATAL> /etc/bird/bird.conf:1:26 Unknown character
bird3:~# head /etc/bird/bird.conf
router id 172.30.187.148;
log "/var/log/bird.log" { error };
ipv6 table master6;
ipv4 table master4;
include "filters/netlist/*.list";
include "filters/AS.list";
include "define/*.def";
bird3~#
Any suggestions would be welcome, as I am currently in the process of refractoring my routers from BIRD1 to BIRD3, and this has put me at a bit of a standstill. :)
Kind regards, and thank you in advance for any response,
Jori Vanneste / Tyrasuki
</pre>
</body>
</html>