I tried to make JACK running on my Gentoo for a day or two, but I kept getting this

$ jackd -v -R -d alsa 
jackd 0.118.0 
Copyright 2001-2009 Paul Davis, Stephane Letz, Jack O'Quinn, Torben Hohn and others. 
jackd comes with ABSOLUTELY NO WARRANTY 
This is free software, and you are welcome to redistribute it 
under certain conditions; see the file COPYING for details 

getting driver descriptor from /usr/lib64/jack/jack_dummy.so 
getting driver descriptor from /usr/lib64/jack/jack_net.so 
getting driver descriptor from /usr/lib64/jack/jack_alsa.so 
JACK compiled with System V SHM support. 
server `default' registered 
registered builtin port type 32 bit float mono audio 
registered builtin port type 8 bit raw midi 
clock source = system clock via clock_gettime 
loading driver .. 
start poll on 3 fd's 
new client: alsa_pcm, id = 1 type 1 @ 0x608fc0 fd = -1 
creating alsa driver ... hw:0|hw:0|1024|2|48000|0|0|nomon|swmeter|-|32bit 
control device hw:0 
configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods 
ALSA: final selected sample format for capture: 32bit integer little-endian 
ALSA: use 2 periods for capture 
ALSA: final selected sample format for playback: 32bit integer little-endian 
ALSA: use 2 periods for playback 
new buffer size 1024 
registered port system:capture_1, offset = 4096 
registered port system:capture_2, offset = 8192 
registered port system:playback_1, offset = 0 
registered port system:playback_2, offset = 0 
++ jack_sort_graph 
++ jack_rechain_graph(): 
+++ client is now alsa_pcm active ? 1 
client alsa_pcm: internal client, execution_order=0. 
-- jack_rechain_graph() 
-- jack_sort_graph 
5485 waiting for signals
[Ten seconds later]
6624 waiting for signals 
jackd watchdog: timeout - killing jackd

I googled it and found a lot are about realtime, but it's not my case. After many tries, I still couldn't solve my problem so I asked for help, and someone's reply helped me indirectly.

By default, JACK would try to open two ports, one for playback, the other for capture. The problem was on capture, I guess jackd couldn't receive data, so it times out. I have to enable Capture in alsamixer or only use the playback by specifying -P. If I don't do either, the timeout always occurs.

I also tried to use TiMidity++ to create a virtual MIDI device, but there is a problem

$ timidity -iA -Oj -B2,7
TiMidity starting in ALSA server mode
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
error in snd_seq_open

modprobe snd-seq loads the kernel module TiMidity++ needs. Put it into /etc/modules.autoload.d/kernel-2.6 would be helpful for loading at boot time.