Custom opkg repository

Custom opkg repository

The post presenst simple example to create opkg repository to upgrade embbded linux systems using nginx server. The opkg pakcge should be installed as part of the image furing the first instalation. To add opkg to yocto image type type folloing line in file conf/local.conf

IMAGE_INSTALL_append = "
	opkg \

downlad and install opkg utils:

git clone git://

and create Packages.gz file:

cd /path-to-yocto-build/build/tmp/deploy/ipk
~/opkg-utils/opkg-make-index . > Packages.gz

install nginx

I haved used gentoo system , so inorder to install nginx on gentoo type:

emerge nginx

now , config a simple nxing configuration file under /etc/nginx/nginx.conf

user nginx nginx;
worker_processes 1;

error_log /var/log/nginx/error_log info;

events {
	worker_connections 1024;
	use epoll;

http {
	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	log_format main
		'$remote_addr - $remote_user [$time_local] '
		'"$request" $status $bytes_sent ' 
		'"$http_referer" "$http_user_agent" '

	client_header_timeout 10m;
	client_body_timeout 10m;
	send_timeout 10m;

	connection_pool_size 256;
	client_header_buffer_size 1k;
	large_client_header_buffers 4 2k;
	request_pool_size 4k;

	gzip off;

	output_buffers 1 32k;
	postpone_output 1460;

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;

	keepalive_timeout 75 20;

	ignore_invalid_headers on;
#	include /etc/nginx/sites-enabled/*;
#	index Packages.gz;

	server {
		listen 80 default_server;
		listen         [::]:80 default_server;
		server_name localhost;

		location / {
			root /path-to-yocto-build/build/tmp/deploy/ipk;
			rewrite  ^/repo(.*)$ /$1  last;


and then restart nginx:

/etc/init.d/nginx restart

define the device

In the linux device, add the following line to /etc/opkg/opkg.con/

src/gz  repo

to test it type:

opkg update



comments powered by Disqus